2011-07-05 52 views
1

我已經計算出兩個日期字段,因爲我需要時間。除了這些,我有6個下拉菜單,其中包含數字值。計算表單輸入並在屏幕上顯示

當用戶選擇這些字段中的任何一個時,我希望總計在屏幕上類似於購物車計算/更新。 我從這樣的事情開始,但我無法讓血腥的事情工作,顯然我的邏輯是錯的。我意識到這是錯誤的,但我不知道如何解決它。

$(function(){ 
$('a#calc').click(function(){ 
var p = $('select#TRDO').val(); 
var q = $('select#AnnualLeave').val(); 
var r = $('select#PersonalLeave').val(); 
var s = $('select#WorkFromHome').val(); 
var t = $('select#TOIL').val(); 
var tot = (q+p+r+s+t); 
$('input#total').val(tot); 
}); 

});

我只需要幫忙做第一個,然後我就可以自己去做。

由於它是一個非常令人沮喪的一天......

回答

2

你可以嘗試使用parseInt做nummeric另外:

$(function(){ 
    $('a#calc').click(function(){ 
    var p = parseInt($('select#TRDO').val(), 10); 
    var q = parseInt($('select#AnnualLeave').val(), 10); 
    var r = parseInt($('select#PersonalLeave').val(), 10); 
    var s = parseInt($('select#WorkFromHome').val(), 10); 
    var t = parseInt($('select#TOIL').val(), 10); 
    var tot = (q+p+r+s+t); 
    $('input#total').val(tot); 
    }); 
}); 

沒有parseInt()加運算符(+)將Concat的字符串,而不是添加它們的數字值。

希望這會有所幫助。乾杯

+0

Villegas Alvarado有沒有什麼我在得到這個計數/計算。 HERE webb

+0

不,你不會錯過任何東西。如果問題仍然存在,你可以上傳你的代碼到jsfiddle.net,並給我的網址來檢查它? –

+0

這裏是jsfiddle鏈接.... http://jsfiddle.net/HeCvx/1/ – webb

1

一類添加到您想要總安裝和使用parseInt函數所有的投入......哦,你最有可能不想使用。點擊你可能想.change

<input class="inputsToSum" value="4"/> 

var runningTotal = 0; 
$(".inputsToSum").change(function() { 
    runningTotal += parseInt($(this).val(), 10); 
}); 
$('input#total').val(runningTotal); 
+0

我試過使用這個,但它一直問我tot。這不是計算onchange也...謝謝 – webb

+0

對不起。編輯將「tot」更改爲「runningTotal」 – kasdega

0
​​

UPDATE

此代碼的工作,當點擊計算

$(function() { 
    $('a #calc').click(function(){ 

     var p = parseFloat($('select[name=TRDO] option:selected').val()); 
     var q = parseFloat($('select[name=AnnualLeave] option:selected').val()); 
     var r = parseFloat($('select[name=PersonalLeave] option:selected').val()); 
     var s = parseFloat($('select[name=WorkFromHome] option:selected').val()); 
     var t = parseFloat($('select[name=TOIL] option:selected').val()); 

     var tot = (q + p + r + s + t); 
     $('input#total').val(tot); 

    }); 
}); 
+0

我試圖使用您的示例,但它不會計算它給NaN。 'HERE'這是我如何初始化函數。 謝謝 – webb

0

你只是解析成整數或浮點數..

$(function(){ 
$('a#calc').click(function(){ 
var p = $('select#TRDO').val(); 
var q = $('select#AnnualLeave').val(); 
var r = $('select#PersonalLeave').val(); 
var s = $('select#WorkFromHome').val(); 
var t = $('select#TOIL').val(); 
var tot = (parseInt(q)+parseInt(p)+parseInt(r)+parseInt(s)+parseInt(t)); 
$('input#total').val(tot); 
}); 
});