提交具有相同名称的多个输入

时间:2015-07-20 13:32:20

标签: javascript jquery form-data

好的,所以我有创建民意调查的表格。我想使用AJAX请求和能够用户附加图像而不是问题,所以我使用FormData。

我找不到任何解决方案来处理具有相同名称的多个输入(命名如下:“name []”)。我尝试了这个选项:

var fdata = new FormData();
fdata.append('answers[]', $('input[name="answer[]"]').val());

但它不起作用。我知道我可以使用.each(),但我不希望每个问题有不同的名称,所以我不必太多地重建PHP方面。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您必须依次附加每个值。目前,您只是附加第一个(因为这是val()返回的内容。

$('input[name="answer[]"]').each(function (index, member) {
    var value = $(member).val();
    fdata.append('answers[]', value);
});

答案 1 :(得分:0)

问题是$('input[name="answer[]"]').val()并不能满足您的需求;它返回第一个输入元素的值。相反,您需要一组值:

var values = [];
$('input[name="answer[]"]').each(function(i, item) {
    values.push(item.value);
});

fdata.append('answers[]', values);

http://jsfiddle.net/j5ezgxe9/