微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – formData和“选择多个”

参见英文答案 > Get $_POST from multiple checkboxes                                    6个
我正在尝试提交包含文件上传的动态生成表单.
为此,我通过DB连接获取表单字段.字段可以允许多个选定的选项.表单可能如下所示:

<form>
<input type="text" name="xyz"> </input>
<input type="file" name="xyzfile"> </input>
<select multiple name="...">
<option value="...">1</option>
<option value="...">2</option>
...
<option>x</option>
</select>
<select name="...">
<option value="...">1</option>
<option value="...">2</option>
</select>

不幸的是,当我使用formData-Object提交表单时,只传输给定字段的最后一个选项. “multiple”属性以某种方式被忽略.

这是我的代码

var pId = '1';
MetaForm = $('#MetaForm')[0];
formData = new FormData(MetaForm);
formData.append('a','saveInstance');
          formData.append('pId', pId);
$.ajax({
                  type: 'POST',
                  url: 'x.PHP',
                  contentType: false,
                  processData: false,
                  data: formData,

                  success: function (response) {
...

当我检查MetaForm-Object时,所有选中的条目都具有selected = true属性.
在使用formData-constructor时,是否有一个选项我没有看到获取一个选择字段的所有选定条目?
我是否必须使用formData.append()手动执行此操作?如果是这样,我如何确保在使用构造函数AND append()时不会出现任何重复?

这有点令人困惑.

解决方法:

您可以在发布以下代码之前序列化表单数据:

var formPostData  = $("#formID").serialize();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐