9

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

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

当对文本输入控件进行任何更改时,是否有我可以监听的特定事件将被调度?

我想避免变通方法,例如监听表单何时重置,或当清除按钮被按下时。这是我的应用程序所做的简化示例,如果我尝试执行所有这些操作,它会很快变得疯狂。

感谢您的时间。

4

4 回答 4

12
$(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());
    });
})​

演示 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());
    });
});​

演示 2

于 2012-05-28T03:39:54.057 回答
2

这个问题与另一个问题完全相同。请参阅投票数最高的答案作为我的问题的答案:

JS 事件:挂钩文本输入上的值更改事件

于 2012-05-30T20:21:27.943 回答
1

valjQuery的覆盖方法

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 方法时才有效

于 2015-03-10T17:46:02.300 回答
-1

尝试

$('#input').live('change',function() {         })
于 2012-05-28T03:47:12.767 回答