这是演示链接https://jsfiddle.net/harshithanaidu1991/sk07p4fj/2/
我使用这些输入的ID从隐藏的输入中获取值,如下subtA,servicetax,sbc,kkc,wht,subtotalD
所示。我有两个下拉列表,称为basis and division
和division
,只有当value of basis
等于Others
时才会出现。
-
如果basis的值等于"equal",那么我从隐藏输入中得到的量必须除以5,这意味着在div1到div5之间平分。
-
如果
basis
的值等于between 1 to 3
,则该量将在div1到div3之间共享。 -
如果
basis
的值等于specific
,则division
下拉列表将出现,基于划分的选择,将相应地共享该特定划分的下拉量。 -
如果
basis
的值等于others
,那么无论将在div1到div5的输入中输入多少,第一行都将通过计算与subtA
的百分比来相应地共享,并且我将该百分比应用于其余输入。
一旦我从basis dropdown
中选择others
,即使我使用parseFloat
,NaN
值也会出现在输入中。如何避免这种情况,以及如何验证输入中输入的金额总和(仅表的第一行)不应大于subtA
。?
请建议我,如果每个if条件都满足,是否还有其他更简单的方法可以不用写那么多代码??
在将值抓取到变量中时执行parseFloat,而不是在数学运算后执行。
var basis = parseFloat($('#basis').val());
var subtA = parseFloat($('#subtA').val());
var othertax = parseFloat($('#othertax').val());
var subtB = parseFloat($('#subtB').val());
var servicetax = parseFloat($('#servicetax').val());
var sbc = parseFloat($('#sbc').val());
var kkc = parseFloat($('#kkc').val());
var subtC = parseFloat($('#subtC').val());
var subtD = parseFloat($('#subtD').val());
var wht = parseFloat($('#wht').val());
var rate = parseFloat($('#rate').val());
var division = parseFloat($('#division').val());