HTML
<input id="testinput" type="text"></input>
JS
$('#testinput').change(function (){
change();
});
function change(){
alert();
}
$('#testinput').val('new val');
Link
通过键入输入并失去焦点,它可以正常工作,但如果输入字段的更改由jquery
触发,则它不起作用。
$('#testinput')。val('new val')。触发器('更改'); 不是必需的。
答案 0 :(得分:2)
来自MDN(由我加粗):
对input,select和textarea触发change事件 元素当元素的值被更改时 用户即可。与输入事件不同,更改事件不一定 每次更改元素值时触发。
如果要以编程方式更改值,则需要手动触发change
事件。
我想如果你不想手动触发更改事件,你可以覆盖jQuery的val
($.fn.val
)方法为你做这件事:
var originalVal = $.fn.val;
$.fn.val = function() {
if(arguments.length) {
originalVal.apply(this, arguments);
this.trigger('change');
return this;
}
return originalVal.call(this);
}
答案 1 :(得分:0)
都会触发警报
protected
或者,只要您执行需要让更改事件触发https://jsfiddle.net/owoemcg2/
的事情,您就可以触发更改事件 $('#testinput').keyup(function (){
change();
});
function change(){
alert();
}
$('#testinput').val('new val');