需要Javascript从下拉表单字段计算总数

时间:2016-11-01 21:03:02

标签: javascript forms dropdown

我有一张表格。这是一张时间表,有点像。它有每周一天的下拉表格字段,但周日每天工作几小时。每个下拉值的值范围为0.00至12.00,增量为0.25(即0.00,0.25,0.50,0.75,1.00 ... 11.00,11.25,11.50,11.75,12.00)。我试图将一周中所选日期的总和计算到另一个文本表单字段中。这是我的JS

$(document).ready(function () {

var mon, tue, wed, thu, fri, sat, sun, total;
if ($('#form_36379').length) {
$(document).change(function () {
mon = $('#element_47').val();
tue = $('#element_49').val();
wed = $('#element_51').val();
thu = $('#element_53').val();
fri = $('#element_55').val();
sat = $('#element_57').val();
sun = $('#element_58').val();
total = parseFloat(mon) + parseFloat(tue) + parseFloat(wed) + parseFloat(thu) + parseFloat(fri) + parseFloat(sat) + parseFloat(sun);
$('#element_60').val(parseFloat(total).toFixed(2));

});
}
});

我的结果是NaN或其他一些连接值。

NaN出现在总元素中,直到所有字段都选择了值。一旦所有元素都有一个值,我就得到一个计算。示例:Mon = 2.75,Tue = 2.75,Wed = 2.75,Thu = 2.75,Fri = 2.75,Sat = 2.75,Sun = 2.75然后总场(element_60)= 56,当它应该总计19.25

有人能指出我正确的方向,我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试听取下拉菜单的更改事件,例如:

我有3个下拉列表

    <select class="day-dropdown dropdown1">
      <option value="0.00"><option>
      <option value="0.25"><option>
      <option value="0.50"><option>
    </select>
    <select class="day-dropdown dropdown2">
      <option value="0.00"><option>
      <option value="0.25"><option>
      <option value="0.50"><option>
    </select>
    <select class="day-dropdown dropdown3">
      <option value="0.00"><option>
      <option value="0.25"><option>
      <option value="0.50"><option>
    </select>

JS代码

$('.day-dropdown').on('change', function(){
    var dropdowns = $('.day-dropdown'),
        total = 0;

    $.each(dropdowns, function(index, elem){
       var optionSelectedVal = $(this).find('option:selected').val();
       if(optionSelectedVal){
          optionSelectedVal = parseInt(optionSelectedVal);
          total+= optionSelectedVal;
       }
    });
    if(total > 0){
       $('.input-class').val(total.toFixed(2));
    }
});

祝福。