2013-05-28 22 views
0

我有這些輸入字段具有相同的id,名稱。這些輸入是根據用戶選擇使用ajax代碼生成的。我想使用jquery在total_amount字段中完成這些輸入字段(p_amount)的總和。計算使用AJAX生成的輸入類型的總和

<input type="text" id="p_amount" name="p_amount[]" placeholder="Enter Amount "> 
<input type="text" id="p_amount" name="p_amount[]" placeholder="Enter Amount "> 

<input type="text" id="p_amount" name="p_amount[]" placeholder="Enter Amount "> 
<input type="text" id="p_amount" name="p_amount[]" placeholder="Enter Amount "> 
<input type="text" id="p_amount" name="p_amount[]" placeholder="Enter Amount "> 

<input type="text" id="total_amount" name="total_amount" value="" placeholder="Total Amount"> 

我使用下面的js代碼,但它只是返回的第一個文本字段中輸入數字的總和。我想要所有的id與p_amount的總和。請在這裏幫助我。

<script type="text/javascript"> 
$('#total_amount').click(function() { 
    var p_amount=$("#p_amount").val(); 
    var total = 0; 
    for (var i = 0; i < p_amount.length; i++) { 
     total += p_amount[i] << 0; 
    } 
</script> 
+2

你知道你在你的代碼有語法錯誤?您應該在'' – MMM

+5

之前添加'});'不能有兩個具有相同ID的元素。這是錯誤的,尤其是在選擇器上會產生意想不到的行爲。使用'class'代替 –

+3

ID必須是唯一的,這就是爲什麼你只接收第一個值,使用不同的選擇器 –

回答

0

試試這個,

var total=0; 
$('#total_amount').click(function() { 
    $("input[name='p_amount[]'").each(function(){ 
     total+=parseInt($(this).val()); 
    }); 
}); 
alert(total); 
+0

謝謝,它工作只是我不得不刪除語法錯誤 取代 $(「input [name ='p_amount []'」)。each(function() with $('input [name =「p_amount []」]') 。每個(()的函數 –

0

問題是您使用的字段中的id必須是不同的。您應該使用class屬性來註釋多個元素。

然後,您可以使用JQuery獲取這些內容,並使用.each()遍歷它們。

您可以在這裏找到更多的信息和示例: JQuery .each()