简体   繁体   English

需要使用Javascript从下拉表单字段中计算总计

[英]Need Javascript to calculate total from dropdown form fields

I have a form. 我有一个表格。 It's a timesheet, sort of. 这是一个时间表。 It has dropdown form fields for each day Monday though Sunday for hours worked each day. 它在周一至周日的每一天都有下拉表单字段,而在周日则每天工作数小时。 The values in each drop down range from 0.00 to 12.00 in increments of 0.25 (ie 0.00, 0.25, 0.50, 0.75, 1.00 ... 11.00, 11.25, 11.50, 11.75, 12.00). 每个下拉列表中的值从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)。 I have tried to calculate the total of all the days of the week selected values into another text form field. 我试图将一周中所有天的选定值的总和计算到另一个文本表单字段中。 Here's my JS 这是我的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));

});
}
});

My results are either NaN or some other concatenated value. 我的结果是NaN或其他串联值。

NaN appears in the total element until all fields have a value selected. NaN会出现在总计元素中,直到所有字段都被选择为一个值为止。 Once all elements have a value then I get a calculation. 一旦所有元素都有一个值,我就可以进行计算。 Example: Mon = 2.75, Tue = 2.75, Wed = 2.75, Thu = 2.75, Fri = 2.75, Sat = 2.75, Sun = 2.75 then total field (element_60) = 56 when it should total 19.25 例如:星期一= 2.75,星期二= 2.75,星期三= 2.75,星期四= 2.75,星期五= 2.75,星期六= 2.75,星期日= 2.75,则总字段(element_60)= 56时该字段总计为19.25

Can someone point me in the right direction as to what I am missing? 有人可以指出我所缺少的正确方向吗?

You can try listen change event of dropdowns for example: 您可以尝试下拉的监听更改事件,例如:

I have 3 dropdowns 我有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 code 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));
    }
});

Blessings. 祝福!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM