如何使用jQuery将TextBox的OnChange事件绑定到函数?
我正在尝试这个并且失败了:
$(document).ready(function() {
$("input#tags").bind("change",autoFill);
});
function autoFill() {
$("#tags").autocomplete("/taglookup/", {
width: 320,
max: 4,
highlight: false,
multiple: true,
multipleSeparator:",",
scroll: true,
scrollHeight: 300,
delay: 10
});
}
注意:我想实现一个Tag TextBox,就像stackoverflow一样,它检测OnChange事件并在用户输入时调用AJAX函数。
答案 0 :(得分:31)
你正在寻找keydown / press / up
$("#inputID").keydown(function(event) {
alert(event.keyCode);
});
或使用bind $(“#inputID”)。bind('onkeydown',...
答案 1 :(得分:18)
您必须将活动名称从“更改”更改为“onchange”:
$(document).ready(function(){
$("input#tags").bind("onchange", autoFill);
});
或使用快捷键绑定方法更改:
$(document).ready(function(){
$("input#tags").change(autoFill);
});
请注意,onchange事件通常在用户离开输入时触发,因此对于自动完成,您最好使用keydown事件。
答案 2 :(得分:7)
keyup
和change
的组合不一定足够(浏览器的自动完成和使用鼠标粘贴也会更改文本框的内容,但不会触发这些事件):
答案 3 :(得分:1)
我是第二个Chad Grant的回答,并提交了这篇博客文章[删除了死链接]以供您观看。
答案 4 :(得分:1)
这是一个线索,为什么onchange()调用可能不会触发你的绑定函数:
答案 5 :(得分:1)
Chad说的是什么,除了在这种情况下更好地使用.keyup,因为使用.keydown和.keypress输入的值仍然是较旧的值,即如果调用.val(),则不会反映按下的最新键。
这应该是对乍得答案的评论,但我还没有权利发表评论。
答案 6 :(得分:0)
如果您正在尝试使用jQuery自动完成插件,那么我认为您不需要绑定到onChange事件,它将