到目前为止我做得很好,但我无法将其实现为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方面工作得很好。
答案 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的输入字段,因此您可以这样做
演示
答案 4 :(得分:0)
首先,感谢您的耐心和分享信息。这就是我真正想做的事情:
Html部分:
<input type='text' id="textareaID" onkeypress="currencyChecker(event, this.id)" />
<span></span>