我有一个简单的html表单,其结构如下:
<form name="test" action="">
<tr class="selectable" data-selected=false>
<input type="hidden" name="product[gate][id] value=<? echo $pid?>"/>
<input type="text" name="product[gate][amount]"/>
</tr>
</form>
我需要收集每个“数据选择”为真的tr行。
因此我最终得到某种类型的数组,然后我可以使用jQuery POST请求发送到服务器。
这样的事情:
products => Array(
[0] => Array(
id => 1134,
amount => 2
),
[2] => Array(
id => 1134,
amount => 3
)
)
我不知道如何使用js构建多维数组,我也不熟悉JS对象或JSON。最简单的方法是什么?
答案 0 :(得分:1)
试试这个:
var $trs = $("tr").filter(function() {
return $(this).data("selected");
});
var products = [];
$.each($trs, function(i, $tr) {
products.push({
"id": $('input[type="hidden"]', $tr).val(),
"amount": $('input[type="text"]', $tr).val()
});
})
products
变量应该采用您可以在AJAX调用中使用的格式。您可能希望在工作代码中使用比input[attr]
更好的选择器,例如类。
答案 1 :(得分:1)
我假设您在表单标记中包含必要的数据。如果您不想发布任何数据,那么它不应该在<form>
内。
$('form').submit(function() {
alert($(this).serialize());
return false;
});