2017-09-14 74 views
0

我有我的購物車頁面,用戶可以增加和減少產品數量的值,我可以有多個產品,所以我不知道如何更改值多行,每一行都有自己的數量輸入遞增和遞減輸入表單值與多個行jquery

enter image description here

我的HTML代碼

<form method="POST" action="" id="cart-form"> 
<input name="_method" type="hidden" value="PUT"><input name="_token" 
    type="hidden" value="ikL1QisIpVm0CXTAXGqeaP5vf8ulkeUAlsa7jnFE"> 
    <input type="button" value="-" class="minus" id="min"> 
    <input name="qty" id="quantity" type="text" value="1" class="qty"> 
    <input type="button" value="+" class="plus" id="plus">      
</form> 

我的js代碼

$('.minus').click(function(){ 
    if ($('#quantity').val() != 0) 
     $('#quantity').val(parseInt($('#quantity').val()) - 1); 
}); 

$('.plus').click(function(){ 
    $('#quantity').val(parseInt($('#quantity').val()) + 1); 
}); 
+1

並執行每一行有相同的ID的呢? – adeneo

+0

給我們提供一個小提琴嗎? –

+0

什麼是'custom7'? – trincot

回答

3

你不能有多個相同的ID(數量)。您希望根據相對於所點擊的+/-按鈕的位置獲取「正確」的數量字段。

爲負,數量字段是下一個兄弟:

$('.minus').click(function(){ 
    quantityField = $(this).next(); 
    if (quantityField.val() != 0) { 
    quantityField.val(parseInt(quantityField.val(), 10) - 1)); 
    } 
}); 

和加,數量字段是一個同級

$('.plus').click(function(){ 
    quantityField = $(this).prev(); 
    quantityField.val(parseInt(quantityField.val(), 10) + 1)); 
}); 
+0

這把1或0,例如,如果我有1把11 – Leoh

+0

我忘了包裝val()parseInt,更新的答案。 – James

+0

只是完美!你拯救我的一天 – Leoh

0

看着你剛纔在下面一行做了一個錯字的代碼,

$('#quantity').val(parseInt(custom7('#quantity').val()) - 1); 

你會probally想更換成

$('#quantity').val(parseInt($('#quantity').val()) - 1); 

custom7這不是一部分的jQuery,$是。 這裏有一個小提琴來展示它的工作,JSFiddle

+0

抱歉是$不是自定義7,而是其他問題 – Leoh

+0

顯示2行的示例!重複的ID可能是問題... – yezzz

+0

@Leoh看看JSFiddle,它的工作方式應該是這樣嗎?這段代碼並不是錯誤的,但是@yezzz指出重複的id可能是導致這種情況的原因,請確保只有一個具有「id」數量。 –