Javascript onkeyup用户定义的功能

时间:2015-06-18 12:53:27

标签: javascript jquery html

到目前为止我做得很好,但我无法将其实现为html对象。

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

我们假设我有一个像<input type='text' id="textareaID" onkeyup="myFunction(this.id)" />这样的html元素,并且我想像这样实现:

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

在实施后它没有正常工作,因为你可以尝试从小提琴演示。

提前致谢。

--- --- UPDATE

我有很多html输出,它们都有不同的ID值。我想对所有这些html输入使用相同的功能。我不知道如何实施,否则JS方面工作得很好。

5 个答案:

答案 0 :(得分:1)

你试图将jQuery keypress事件放在onkeyup函数事件中......

就这样做:

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

并在:

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

答案 1 :(得分:1)

为了能够将功能应用于所有需要的输入,为了实现可重用性,您可以使用class而不是id。因此,将<input id="textareaID" ... />更改为<input class="textarea" ... />

现在定义使您的匿名函数在事件处理程序绑定之外成为命名函数。所以而不是:

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

你有:

function reusableFunction(e){ ... }

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

同样在您的jsFiddle中,您需要为document.getElementById替换一些this。这是你的jsFiddle with said modifications。请注意,我有3个输入,如原始输入,如果我想要更多,我可以添加class

如果我错过了某些内容,我很乐意更新我的答案,你不会提到为什么你的功能被破坏而且不是很明显。

答案 2 :(得分:1)

让我理解这一点,你想在传递元素的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>

答案 3 :(得分:1)

这是你想要的吗?

HTML

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

的js

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

您在评论中说明可能有许多具有不同ID的输入字段,因此您可以这样做

演示

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

答案 4 :(得分:0)

首先,感谢您的耐心和分享信息。这就是我真正想做的事情:

Html部分:

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

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