2016-11-01 8 views
0

私はフォームを持っています。タイムシート、一種。毎週日曜日に数時間働いていますが、毎週月曜日のドロップダウンフォームフィールドがあります。各ドロップダウンの値は、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ですドロップダウンフォームフィールドから合計を計算するにはJavaScriptが必要です

$(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、Fri = 2.75、Sat = 2.75、Sun = 2.75合計フィールド(element_60)= 56それは合計19.25

誰かが私が紛失しているものについて正しい方向に?

+0

'#element_47'から'#element_58'までの値は、数字(*、つまりNaN' *)に変換できないなど、期待している値ではありません。あなたは私たちにそれらの価値を教えているわけではありません。それは、私があなたに与えることができるすべての助け、それらの要素の価値は何ですか? –

+0

一度に1日追加して、どれがNaNへのurコードを引き起こしているのかを確認してください。 –

+0

すべてのフィールドに値が選択されるまで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 – Jeremy

答えて

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)); 
    } 
}); 

祝福を持っています。

関連する問題