提交具有相同名称的多个输入
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);
您必须依次附加每个值。目前您只附加第一个(因为那是 val()
returns.
$('input[name="answer[]"]').each(function (index, member) {
var value = $(member).val();
fdata.append('answers[]', value);
});
好的,我有了创建投票的表格。我想使用 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);
您必须依次附加每个值。目前您只附加第一个(因为那是 val()
returns.
$('input[name="answer[]"]').each(function (index, member) {
var value = $(member).val();
fdata.append('answers[]', value);
});