我在表单中有一个输入元素,我希望能够在值更改时提取其值。看看这个小提琴:http://jsfiddle.net/spryno724/WaBzW/1/。
通过使用change
事件,当输入失去焦点时,我能够显示文本输入中的值。但是,重置表单或JavaScript清除文本输入的值时,该值不会更新。
当对文本输入控件进行 任何 更改时,是否有可以侦听的特定事件?
我想避免解决方法,例如在重置表单时进行侦听,或者在按下清除按钮时。这是我的应用程序所做的简化示例,如果我尝试完成所有这些操作,它会变得非常快。
感谢您的时间。
答案 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)
这个问题与另一个问题完全相同。查看具有最高票数的答案作为我的问题的答案:
答案 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');
注意这只有在从
调用val方法时才有效myInput
变量
答案 3 :(得分:-1)
尝试
$('#input').live('change',function() { })