Jquery .change()函数行为

时间:2014-06-30 21:56:46

标签: jquery onchange

我有一个输入文本框,我已经连接了jquery'change'功能。我希望捕获文本框的文本更改时。目前,通过我的更改功能,当用户键入文本值并按Enter键时,将触发change事件。同样的文本框也可以使用表单上其他位置的下拉菜单中的文本值进行填充。当用户在下拉列表中选择该选项时,文本值会自动填充较早的文本框值。但是,尽管文本框的值已更改,但更改事件不会触发。我想知道为什么?在任何一种情况下,我需要捕获文本框的值何时发生变化。我需要为此找到最佳解决方案,并且我试图更好地理解更改函数的行为。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

要从选择列表中捕获要填充的文本框的值,只需添加类似$(this).val()的内容即可修改函数。在定义动态添加文本的位置之后。

$(function(){
 $("select").change(function(){ // get value of select list on change, add this to next input
    var a = $(this).val();
    $("input").next(function(){
      $(this).val(a);
    });
    });
});

$(function(){
 $("input").change(function(){ // get value of your textbox on change, log to console
   var a = $(this).val();
   console.log(a);
  });
});

答案 1 :(得分:0)

在文本输入上尝试“on input”而不是“on change”,但是警告:IE8不能与“on input”一起使用,所以你也可以使用“on keydown”...就是你在看什么为?