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

Submitting multiple inputs with same name

好的,我有了创建投票的表格。我想使用 AJAX 请求并允许用户附加图像而不是问题,所以我为此使用 FormData。

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

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

但是没用。我知道我可以使用 .each(),但我不希望每个问题都使用不同的名称,因此我不必过多地重建 PHP 面。

感谢您的帮助。

问题是 $('input[name="answer[]"]').val() 没有提供您需要的东西;它 returns 第一个输入元素的值。相反,您需要一个值数组:

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

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

http://jsfiddle.net/j5ezgxe9/

您必须依次附加每个值。目前您只附加第一个(因为那是 val() returns.

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