我有一个可以包含任意数量元素的表单。每个元素都有一些特征。如何将所有表单的数据放入ajax发布的URL?
变量id是给定项的id。
Item 1
<input type='text' name='<?php echo $id . "['name']";?>' id='i_<?php echo $id . "['name']";?>'>
<input type='text' name='<?php echo $id . "['size']";?>' id='i_<?php echo $id . "['size']";?>'>
Item 2
<input type='text' name='<?php echo $id . "['name']";?>' id='i_<?php echo $id . "['name']";?>'>
<input type='text' name='<?php echo $id . "['size']";?>' id='i_<?php echo $id . "['size']";?>'>
Item 3
<input type='text' name='<?php echo $id . "['name']";?>' id='i_<?php echo $id . "['name']";?>'>
<input type='text' name='<?php echo $id . "['size']";?>' id='i_<?php echo $id . "['size']";?>'>
如果我这样做
var inputs = $('#formName :input');
var data = "";
inputs.each(function() {
data += this.name+"="+$(this).val()+"&";
});
标识符中的括号将所有内容全部弄清楚。我知道我正在做错了。我该怎么办?
如果我序列化同样的事情发生。我知道在元素id中使用括号是不理想的,但我怎么能将每个项目的一些特征与id相关联呢?
这是我的渲染形式:
<form name='formName' id='formName' action='#'>
<ul id="sortable">
<li class="ui-state-default" id='201817'>
<input type='button' class='removeItem' value='remove'>
<input type='text' name='201817['name']' id='a_201817['name']' value='hat'>
<input type='text' name='201817['size']' id='a_201817['size']' value='small'>
</li>
<li class="ui-state-default" id='501817'>
<input type='button' class='removeItem' value='remove'>
<input type='text' name='501817['name']' id='a_501817['name']' value='shirt'>
<input type='text' name='501817['size']' id='a_501817['size']' value='small'>
</li>
<li class="ui-state-default" id='522227'>
<input type='button' class='removeItem' value='remove'>
<input type='text' name='522227['name']' id='a_522227['name']' value='shirtB'>
<input type='text' name='522227['size']' id='a_522227['size']' value='Large'>
</li>
</ul>
</form>
答案 0 :(得分:4)
您可以使用form.serialize它会考虑所有:input
字段。另请记住,序列化将考虑元素name
而不是id
。
所以试试:
var data = $('#formName').serialize();