如何用jQuery获取一个数组,同名的多个<input>
我有一个表单,用户可以添加input字段与jQuery。
<input type="text" id="task" name="task[]" />
提交表单后,我在PHP中获得一个数组。
我想用$.ajax()
来处理这个问题,但我不知道如何把我的<input>
变成jQuery中的一个数组。
提前致谢。
使用地图 :
var values = $("input[id='task']") .map(function(){return $(this).val();}).get();
如果你改变或删除了id(应该是唯一的),你也可以使用select器$("input[name='task\\[\\]']")
工作示例: http : //jsbin.com/ixeze3
对于多个元素,你应该给它一个类,而不是id,例如:
<input type="text" class="task" name="task[]" />
现在你可以得到那些使用jQuery的东西是这样的:
$('.task').each(function(){ alert($(this).val()); });
首先,你不应该在页面上有多个具有相同ID的元素 – ID应该是唯一的。
你可以删除id属性,并用下面的代替:
<input type='text' name='task'>
并获得任务do的值的数组
var taskArray = new Array(); $("input[name=task]").each(function() { taskArray.push($(this).val()); });
要捕获名称数组,我使用:
$("input[name*='task']")
文档中的多个元素不能使用相同的ID。 保持不同的名称和元素的名称相同。
<input type="text" id="task1" name="task" /> <input type="text" id="task2" name="task" /> <input type="text" id="task3" name="task" /> <input type="text" id="task4" name="task" /> <input type="text" id="task5" name="task" /> var newArray = new Array(); $("input:text[name=task]").each(function(){ newArray.push($(this)); });
HTML:
<input type="text" name="task[]" class="form-control" id="task">
JS:
var tasks= new Array(); $('input[name^="task"]').each(function() { tasks.push($(this).val()); });
如果你想select器获得相同的ID,使用:
$("[id=task]:eq(0)").val(); $("[id=task]:eq(1)").val(); etc...
你可以使用jquery.serializeJSON来做到这一点。