如何使用JQuery绑定TextBox的onchange事件?

时间:2009-04-30 08:47:47

标签: jquery html

如何使用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函数。

7 个答案:

答案 0 :(得分:31)

你正在寻找keydown / press / up

$("#inputID").keydown(function(event) {
    alert(event.keyCode);
});

或使用bind $(“#inputID”)。bind('onkeydown',...

http://docs.jquery.com/Events

答案 1 :(得分:18)

您必须将活动名称从“更改”更改为“onchange”:

$(document).ready(function(){
        $("input#tags").bind("onchange", autoFill);
          });

或使用快捷键绑定方法更改:

$(document).ready(function(){
        $("input#tags").change(autoFill);
          });

请注意,onchange事件通常在用户离开输入时触发,因此对于自动完成,您最好使用keydown事件。

答案 2 :(得分:7)

keyupchange的组合不一定足够(浏览器的自动完成和使用鼠标粘贴也会更改文本框的内容,但不会触发这些事件):

jquery change not working incase of dynamic value change

答案 3 :(得分:1)

我是第二个Chad Grant的回答,并提交了这篇博客文章[删除了死链接]以供您观看。

答案 4 :(得分:1)

这是一个线索,为什么onchange()调用可能不会触发你的绑定函数:

http://jehiah.cz/archive/firing-javascript-events-properly

答案 5 :(得分:1)

Chad说的是什么,除了在这种情况下更好地使用.keyup,因为使用.keydown和.keypress输入的值仍然是较旧的值,即如果调用.val(),则不会反映按下的最新键。

这应该是对乍得答案的评论,但我还没有权利发表评论。

答案 6 :(得分:0)

如果您正在尝试使用jQuery自动完成插件,那么我认为您不需要绑定到onChange事件,它将