簡體   English   中英

Javascript onkeyup用戶定義函數

[英]Javascript onkeyup user defined function

到目前為止,我做得很好,但是我無法將其實現為html對象。

http://jsfiddle.net/fkyk2b8y/48/

假設我有一個像<input type='text' id="textareaID" onkeyup="myFunction(this.id)" />這樣的html元素,並且我想這樣實現:

function myFunction(elementID){
   $('#'+elementID).keypress(function (e){
      ...
      ...
      ...
   });
}

實施后它無法正常工作,您可以從小提琴演示中嘗試一下。

提前致謝。

-更新-

我有很多HTML輸出,它們都有不同的ID值。 我想對所有這些html輸入使用相同的功能。 我不知道如何實現,否則JS方面運行良好。

您正在嘗試將jQuery keypress事件放入onkeyup函數事件中...

只是這樣做:

<input type='text' id="textareaID" />

在里面:

 $("textareaID").keypress(function (e){
    if ( e.keyCode == (whatever you want) ) ...
 });

為了能夠對所有需要的輸入應用函數,以實現可重用性,可以使用class而不是id 因此,將<input id="textareaID" ... />更改為<input class="textarea" ... />

現在定義使您的匿名函數在事件處理程序綁定之外成為一個命名函數。 所以代替:

$('#textareaID').keypress(function(e){ ... });

您將擁有:

function reusableFunction(e){ ... }

$('.textarea').keypress(reusableFunction);

另外,在您的jsfiddle你需要更換一些document.getElementById的為this 這是經過修改jsFiddle 注意,我有3個輸入,例如原始輸入,如果需要更多輸入,可以添加class

如果我錯過了一些事情,我很樂意更新我的答案,您不用說為什么您的功能壞了,而且不是立即顯而易見的。

讓我明白這一點,您是否要在傳遞元素ID時從javascript函數調用jQuery函數? 然后同時使用元素的ID和keypress事件? 如果是這樣,可以這樣做

<input type="text" onkeypress="callKeyPress(this.id);" id="textId" />

    <span id="keypressCode">0</span>

<script>

$(document).ready(function() {
    alert("function is ready to use now");
});



$.fn.keyPressFunction = function(id){
    alert("id is ---> "+id);

var keycode = (event.keyCode ? event.keyCode : event.which);
        $('#keypressCode').html(keycode);

    //do something with key code

}

function callKeyPress(id){
    alert(id);
    $.fn.keyPressFunction(id);

}
</script>

這是你想要的嗎?

HTML

<input type='text' id="textareaID1" />
<input type='text' id="textareaID2" />
<span></span>

s

$('input[type=text]').on('keyup',function(e){
    $('span').html(this.id);
});

您在評論中表示,可能有許多輸入字段具有不同的ID,因此您可以執行此操作

演示版

http://jsfiddle.net/fkyk2b8y/50/

首先,感謝您的耐心配合和分享信息。 這就是我真正想要做的:

HTML部分:

<input type='text' id="textareaID" onkeypress="currencyChecker(event, this.id)" />
<span></span>

JS部分: https//jsfiddle.net/fkyk2b8y/54/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM