第一个输入表单总是有效,但第二个,第三个,第四个等等从不这样做。我做错了什么? 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>
答案 0 :(得分: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();
这应该有用。
答案 1 :(得分:1)
两种表单都有相同的ID。
答案 2 :(得分:1)
您不应该有多个具有相同ID的元素。 $('#cartUpdate')
使用仅返回一个元素(第一个)的本地document.getElementById
。
将一个类分配给两个表单并使用它。