如何为许多元素禁用onChange,然后更改,然后在jQuery中启用onChange

时间:2011-10-04 03:23:52

标签: jquery

我在页面上有一堆输入元素。每个input元素都有一个onchange事件,触发对服务器的ajax调用。我想禁用所有这些onchanges然后对元素进行一些编程更改(重置它们),然后重新启用这些onchange事件。我希望只有一次ajax调用才会发生。

如何使用JQuery执行此操作?

非常感谢!

1 个答案:

答案 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时没有焦点变化,因此没有事件。