2012-11-05 42 views
0

我有多個文本框(類txtsum)應該只允許數字。我該如何計算這些文本框爲用戶在文本框中的總和文本框上的和操作

var $txtb = $(':input.txtsum'); 
$txtb.on('change',function(){ 
    tot = 0.0; 
    $txtb.each(function() { 
     tot += parseFloat($(this).text()); 
    }); 
}); 

您能否提供我正確的/更好的方式來做到這一點?這是我試過http://jsfiddle.net/DPe4W/

回答

4

變化

tot += parseFloat($(this).text()); 

tot += parseFloat($(this).val()); 

您應該使用.val得到任何輸入元素的值一樣inputselect

而且我改變你的代碼如下圖所示,

DEMO:http://jsfiddle.net/DPe4W/7/

var $txtb = $(':input.txtsum'); 
$txtb.on('keyup', function() { 
    var tot = 0.0; 
    $txtb.each(function() { 
     var val = parseFloat(this.value); 
     if (!isNaN(val)) { 
      tot += val; 
     } 
    }); 

    $("p").html(tot); 
}); 
+0

感謝,但我仍然無法得到它的工作http://jsfiddle.net/DPe4W/1/ – KayKay

+2

@KayKay更改'MooTools'到左上角的'jQuery' –

+0

@KayKay更新了答案並附帶演示。 –

0

.text()不輸入類型工作..使用.val()代替

而不是

$(this).text() 

使用

($(this).val() ; // To calculate the value 

全碼

var $txtb = $(':input.txtsum'); 
$txtb.on('keyup', function() { 
    tot = 0.0; 
    $txtb.each(function() { 
     var t = $(this).val() != '' ? $(this).val() : 0; 
     tot += parseFloat(t); 
    }); 
    $("p").html(tot); 
});​ 

Check Fiddle

+0

如何在para中顯示總數? – KayKay

+0

在帖子中檢查小提琴 –

+0

首先將框架更改爲jQuery而不是MooTools ...需要將要寫入para的塊移至for循環的外部。否則它會覆蓋當前值 –