我正在使用此代码向表单添加元素。然后我计算该类的元素总数。但是,Jquery .length返回元素数乘以2。
任何想法我做错了什么?
$(function () {
function updateWeight() {
var z = $("input.count").length;
alert(z);
}
$("#addCatalogItem").autocomplete({
source: function (request, response) {
$.getJSON("inventory_auto_complete.php", {
term: request.term,
supplier_id: $('#supplier_id').val()
}, response);
},
minLength: 2,
select: function (event, ui) {
var q = ui.item.product_id;
$('#product_id').val(q);
var r = ui.item.value;
$('#product').val(r);
var field = '<label>' + r + '</label><input class=\"count\" type=\"text\" value=\"\" name=\"field[' + q + ']\"/>';
var $item = $("form");
$(field).appendTo($item);
updateWeight();
}
});
});
HTML
<form>
<input type="hidden" id="supplier_id" value="1"/>
<input id="addCatalogItem"/>
</form>
答案 0 :(得分:1)
var $item = $("form");
会占用页面中的所有表单。也许你在页面的某个地方有其他形式。
Here's a test case显示与您的问题相同的结果。
我的建议是,您将表单设为ID,然后将其用作选择器var $item = $("#formID");
。