我有两个文本字段,一个表示百分比,第二个表示相应的数量。现在我想要的是,当百分比改变时,金额应该改变,当金额改变时,百分比应该相应地改变。我正在使用javascript。
在这种情况下,如果其中任何一个发生变化,将启动无限循环。
我想要的是,当金额发生变化时,应该相应地改变百分比,然后循环应该停止。当百分比改变时,它应该相应地改变量,然后循环应该停止。这有什么办法吗?也许像stopPropagation
?
虚拟JS代码:
此处value
是一个文本框,percentage
是另一个文本框
function valueChng(){
percentage.value = "" + someInteger;
}
function percentageChng(){
value.value = "" + someInteger;
}
谢谢!
答案 0 :(得分:7)
我仍然没有看到问题,因为在以编程方式更改内容时不会执行更改处理程序。我只是实现了一个简单的小提示,以显示它是如何工作而不进入无限循环(为简单起见使用jquery): http://jsfiddle.net/aWuks/
答案 1 :(得分:0)
从头到尾:
var changedFlag = false;
function valueChng(){
if(changedFlag == true) {
changedFlag = false;
return;
}
percentage.value = "" + someInteger;
changedFlag = true;
}
function percentageChng(){
if(changedFlag == true) {
changedFlag = false;
return;
}
value.value = "" + someInteger;
changedFlag = true;
}
这样,两个'onchange'事件中的第二个将始终被忽略。