jQuery侦听所有文本输入更改

时间:2012-05-28 03:36:00

标签: javascript jquery html forms events

我在表单中有一个输入元素,我希望能够在值更改时提取其值。看看这个小提琴:http://jsfiddle.net/spryno724/WaBzW/1/

通过使用change事件,当输入失去焦点时,我能够显示文本输入中的值。但是,重置表单或JavaScript清除文本输入的值时,该值不会更新。

当对文本输入控件进行 任何 更改时,是否有可以侦听的特定事件?

我想避免解决方法,例如在重置表单时进行侦听,或者在按下清除按钮时。这是我的应用程序所做的简化示例,如果我尝试完成所有这些操作,它会变得非常快。

感谢您的时间。

4 个答案:

答案 0 :(得分:10)

$(document).ready(function() {
    $('input.clear').click(function() {
        $('input.input').val('');
        $('p.display').text('The value of the text input is: ');
    });

    $('input.input').on('keyup change', function() {
       $('p.display').text('The value of the text input is: ' + $(this).val());
    });
})​

<强> DEMO 1

这个解决方案可能对您有所帮助:

$(document).ready(function() {
    $('input.clear, input[type=reset]').on('click', function() {
        $('input.input').val('').change();
        $('p.display').text('The value of the text input is: ');
    });

    $('input.input').on('keyup change', function() {
        $('p.display').text('The value of the text input is: ' + $(this).val());
    });
});​

<强> DEMO 2

答案 1 :(得分:2)

这个问题与另一个问题完全相同。查看具有最高票数的答案作为我的问题的答案:

JS Events: hooking on value change event on text inputs

答案 2 :(得分:0)

覆盖jQuery的val方法

<强> HTML

<input id='myInput' name='myInputField' value='v1'>

<强> JS

var myInput = $('#myInput');

//this will not trigger the change event
myInput.val('v2');

//override val method
var oldVal = myInput.val;
myInput.val = function(value){
   var returnVal = oldVal.call(this,value);
   myInput.change();
   return returnVal;
}

// this will trigger the change event
// myInput.val is overridden
myInput.val('v3');
  

注意这只有在从myInput变量

调用val方法时才有效

答案 3 :(得分:-1)

尝试

$('#input').live('change',function() {         })