Javascript 使用.blur(函数()更新实时计算

Javascript 使用.blur(函数()更新实时计算,javascript,jquery,Javascript,Jquery,我正在尝试使用.blur更新基于选择框的计算函数。例如,当用户第一次将框从0更改为1时,它会起作用,但之后更改时,它不会反转上一次的计算。to_条件是文本中显示的id,最初为10。在我更改后,数值从0更改为1,to_条件n正确地减少了0.5到9.5,但是如果我再次改变它,比如说3,而不是再加上0.5,然后减去1.5,使之成为_条件8.5,它会从9.5中减去1.5,使之成为_条件=8 James,我认为您没有粘贴完整的代码,例如,bent_times的定义缺失。然而,在我看来,updatecond

我正在尝试使用.blur更新基于选择框的计算函数。例如,当用户第一次将框从0更改为1时,它会起作用,但之后更改时,它不会反转上一次的计算。to_条件是文本中显示的id,最初为10。在我更改后,数值从0更改为1,to_条件n正确地减少了0.5到9.5,但是如果我再次改变它,比如说3,而不是再加上0.5,然后减去1.5,使之成为_条件8.5,它会从9.5中减去1.5,使之成为_条件=8


James,我认为您没有粘贴完整的代码,例如,bent_times的定义缺失。然而,在我看来,updatecondition的前两行显然是您问题的原因。您应该始终从$is_bent_num.val isntead of$condition_exact.val中减去$is_bent_num.val isntead of$condition。val

当函数UpdateSecond时放入to_condition的结果ition的调用取决于发送到函数的newcondition参数和condition_精确值,后者在每次调用updateconditino时都会更新。可能是condition_精确值的更新导致了您的问题

$("#condition_exact").val(changecondition);

我认为你的问题在于:

updatecondition(bent_num * bent_orig * -1);
updatecondition(bent_num * bent_new);
基本上,您会两次更新condition_exact字段;一次使用基于bent_num的值,一次使用基于用户输入bent_new的值。第二次更新当然是您将看到的更新。我认为您的意思是:

updatecondition(bent_orig - (bent_num * bent_new));
现在该字段只更新一次。新值将是原始值减去用户的输入次数


顺便说一句,你的变量名有点让人困惑。例如,bent_num是什么意思?它是步长吗?看这段代码的其他人知道它的意思吗?我当然不知道。如果你在6个月后再看一遍代码,你会吗?那么如果bent_num是步长,为什么不称它为步长或步长呢?

有你的问题b吗伊恩回答?
updatecondition(bent_orig - (bent_num * bent_new));