使用JavaScript根据下拉选择的选项计算金额



这是演示链接https://jsfiddle.net/harshithanaidu1991/sk07p4fj/2/

我使用这些输入的ID从隐藏的输入中获取值,如下subtA,servicetax,sbc,kkc,wht,subtotalD所示。我有两个下拉列表,称为basis and divisiondivision,只有当value of basis等于Others时才会出现。

  1. 如果basis的值等于"equal",那么我从隐藏输入中得到的量必须除以5,这意味着在div1到div5之间平分。

  2. 如果basis的值等于between 1 to 3,则该量将在div1到div3之间共享。

  3. 如果basis的值等于specific,则division下拉列表将出现,基于划分的选择,将相应地共享该特定划分的下拉量。

  4. 如果basis的值等于others,那么无论将在div1到div5的输入中输入多少,第一行都将通过计算与subtA的百分比来相应地共享,并且我将该百分比应用于其余输入。

一旦我从basis dropdown中选择others,即使我使用parseFloatNaN值也会出现在输入中。如何避免这种情况,以及如何验证输入中输入的金额总和(仅表的第一行)不应大于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());

最新更新