我有:
<input name="X">
并在JavaScript中:
$('input').on('change','[name=X]',function() {
$('body').append('on change fired!');
}
);
$('input[name=X]').change(function() {
$('body').append('change fired!');
});
$(input[name='X']).val('test');
但我的问题是两个更改事件都没有被触发。
答案 0 :(得分:4)
答案 1 :(得分:1)
确保您使用的是现成的块
$(function(){
$('input').on('change','[name=X]',function() {
$('body').append('on change fired!');
});
$('input[name=X]').change(function() {
$('body').append('change fired!');
});
$(input[name='X']).val('test');
});
如果你试图以编程方式简单地触发:
$('input[name=X]').change(); // trigger change event
答案 2 :(得分:1)
以编程方式更改输入元素的值不会触发任何事件。或者,您可以在.change
之后拨打.val
,如下所示
$('input[name=X]').val('test').change();
修改:修复了输入选择器周围缺少的引号。