动态赋值时,如果才能不触发Input 的onChange事件

提问 已结 3 8611
悬赏:20飞吻

程序中有一个输入框

<input type="text" id="disRate" name="disRate" data-toggle="topjui-numberbox" data-options="min:0,max:100,precision:2,onChange:disRateChange" style="text-align:right">

function disRateChange(newValue,oldValue){
//TODO
}



当在JS中调用赋值方法时,会触发onChange事件.

var disRate = 3.51;
$("#disRate").iNumberbox('setValue',disRate );//此行代码执行后会触发disRateChange事件



只希望手动输入的时候才触发onchange事件,JS赋值时不让其触发. 如果才能做到?

需求是这样的:
界面中有两个输入框,A 和 B ,A和B都绑定了onChange事件,在其中一个手动输入完成后,会根据需求和其他参数计算出结果赋值到另一个输入框

当用户在A输入框中输入完成后,根据需求计算出的结果赋值到B输入框中,此时B输入框的onChange事件会被触发,事件中又会根据B输入框中的值,自动计算结果 ,结果又会被赋值到A输入框中.因为在计算中存在小数精度问题,导致输入后的金额会产生变化.

例:
20 / 570 = 0.0351
570 * 0.0351 = 20.01 (保留两位小数)
在A输入框中输入的是20,根据计算将结果0.0351赋值到B输入框,因为会触发B输入框onchange事件,A输入框中的20会变成20.01.

我希望是:
在A输入20后,将0.0351赋值到B输入时,不触发OnChange事件.但如果是用户手动在B输入框输入值时,还是要触发onChange事件





回帖
回帖须知