Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更新选择框而不导致onChange_Javascript_Prototypejs_Onchange - Fatal编程技术网

Javascript 更新选择框而不导致onChange

Javascript 更新选择框而不导致onChange,javascript,prototypejs,onchange,Javascript,Prototypejs,Onchange,这是我想要实现的,我有一个选择框,它加载几行,当选择被更改(onchange)时,键被转换为一个PHP函数,该函数返回一个JSON格式的数组,然后我的代码清除选择框选项并应用我刚从PHP函数返回的值,很好 问题是,当设置新值时,它会再次触发onchange事件,这会设置值,而我们正处于一个永无止境的循环的开始。Firebug捕捉到错误并将其吐出 我的问题是,有没有办法禁用onchange事件,使其只触发一次?我在一个基于原型的框架中进行编码,发布一个代码示例会有点繁重,但是我可以根据请求尝试填充

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

问题是,当设置新值时,它会再次触发onchange事件,这会设置值,而我们正处于一个永无止境的循环的开始。Firebug捕捉到错误并将其吐出

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

干杯!
ILMV使用标志变量。不要担心一旦发生更改就停止
onchange
,而是基于标志变量将其逻辑包装在条件中


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

。不要担心一旦发生更改就停止
onchange
,而是基于标志变量将其逻辑包装在条件中


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

谢谢您的回复,我想我可能必须走这条路,我会去玩一玩,然后报告我的发现:-)谢谢您的回复,我想我可能必须走这条路,我会去玩一玩,然后报告我的发现:-)