更新选择框而不会导致onChange

时间:2010-02-02 14:12:28

标签: javascript prototypejs onchange

这是我想要实现的,我有一个加载几行的选择框,当select更改(onchange)时,键是AJAX到一个PHP函数,它返回一个JSON格式的数组,我的代码然后清除选择框选项并应用我刚从PHP函数返回的值,很棒。

问题是当设置新值时,它再次触发onchange事件,这将设置值,我们处于永不结束循环的开头。 Firebug捕获错误并将其吐出。

我的问题是有没有办法禁用onchange事件,所以它只会触发一次?我在基于原型的框架中进行编码,发布代码示例会有点沉重,但是我可以根据请求尝试填写任何缺失的数据。

干杯! ILMV

1 个答案:

答案 0 :(得分:1)

使用标志变量。不要担心停止发生onchange,而是根据标志变量将其逻辑包装在条件中。

基本上,您只需创建变量canChange,并在以编程方式更新输入时将其设置为false。然后,在onchange逻辑中,检查该变量的值。如果它是错误的,请不要执行任何操作,而是将其切换回true以进行下一个onchange事件。如果是真的,请对新数据执行典型的ajax请求。