2010-02-02 21 views
1

这是我想要实现的,我有一个选择框加载了几行,当select被更改时(onchange),键被AJAX转换为PHP函数,返回一个数组JSON格式,我的代码然后清除选择框选项,并应用我刚刚从我的PHP函数返回的值,很好。更新选择框而不会导致onChange

问题是,当新的值被设置,它再次触发onchange事件,这设置值,我们在一个永无止境的循环的开始。 Firebug捕获错误并吐出。

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

干杯! ILMV

回答

1

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

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

+0

感谢您的回复,我想我可能不得不走上这条路,我会去玩,然后报告我的发现:-) – 2010-02-02 14:22:48

+0

@ILMV:祝您好运! – Sampson 2010-02-02 14:23:13

+0

工作很好,非常感谢乔纳森! – 2010-02-03 10:28:35