我在页面上有一堆输入元素。每个input元素都有一个onchange事件,触发对服务器的ajax调用。我想禁用所有这些onchanges然后对元素进行一些编程更改(重置它们),然后重新启用这些onchange事件。我希望只有一次ajax调用才会发生。
如何使用JQuery执行此操作?
非常感谢!
答案 0 :(得分:3)
通过.val()
更改输入元素值不会触发change event,因此您可以设置值,然后手动触发更改事件:
$('#a').val('where is');
$('#b').val('pancakes house?');
$('#a').change(); // This is the only change event
演示:http://jsfiddle.net/ambiguous/Qd2Ad/
来自fine manual:
更改强>
当控件失去输入焦点并且自获得焦点后其值已被修改时,会发生更改事件。此事件对INPUT,SELECT和TEXTAREA有效。元件。
当您只是致电val
时没有焦点变化,因此没有事件。