2012-02-19 88 views
0

第一種輸入形式始終有效,但第二種,第三種,第四種等輸入形式永遠不會。我究竟做錯了什麼?使用多於一個輸入表格的鍵盤輸入

jQuery的

$('#cartUpdate').keyup(function() { 

    var url = $(this).attr('action'); 
    var qty = $('input[name=qty]').val(); 
    var rowid = $('input[name=rowid]').val(); 

    if(qty > 0) { 
     $.post(url, {qty: qty, rowid: rowid }, function(changeCost) {  

     }); 
    } 

    return false; 
}); 

HTML:

<form action="cart/update" id='cartUpdate' method="post" accept-charset="utf-8">  
    <input type="hidden" name="rowid" value="76ea881ebe188f1a7e7451a9d7f17ada" /> 
    <input type="text" name="qty" value="5" />  
</form> 
<form action="cart/update" id='cartUpdate' method="post" accept-charset="utf-8">  
    <input type="hidden" name="rowid" value="e7a36fadf2410205f0768da1b61156d9" /> 
    <input type="text" name="qty" value="1" /> 
</form> 

回答

2

您在兩種表單中都使用相同的ID,只返回第一個元素。你應該在你的表單中使用class,即class =「cartUpdate」,在函數中使用$('。cartUpdate'),或者你也可以使用id =「cartUpdate1」,id =「cartUpdate2」 cartUpdate1,#cartUpdate2')。keyup(...);

注意:使用id作爲唯一元素和類的一組匹配元素。

var qty = $('input[name=qty]', $(this)).val(); 
var rowid = $('input[name=rowid]', $(this)).val(); 

這應該起作用。

+0

感謝您的說明不知道。我把它改成了一個類,並使用螢火蟲我可以看到它正在發送數據,但第二,第三,第四等表單正在傳遞與第一個相同的數據。有任何想法嗎? – Claremont 2012-02-19 07:54:26

+0

檢查我的答案,它已更新。 – 2012-02-19 07:58:48

+0

是的,謝謝你的工作。我仍然是一個小菜鳥,無論如何,你可以解釋做了什麼? – Claremont 2012-02-19 08:01:38

1

您有兩種形式相同的ID。

+0

這可以更好地發表評論 – Moons 2012-02-20 05:08:05

1

您不應該有多個具有相同ID的元素。 $('#cartUpdate')使用本機document.getElementById,它只返回一個元素(第一個元素)。

將一個類改爲分配給兩個表單並使用它。