我试图将所选文件从输入文件放到新创建的' formData'在表格提交上,以下是我的尝试。
首先我有表格
<form action="/upload.php">
<fieldset>
<input type="file" name="file">
<input type="text" name="full_name">
</fieldset>
<button>SEND</button>
</form>
然后是脚本
$(document).ready(function(){
$("form").submit(function(e){
e.preventDefault();
var dis = $(this),fdata = new FormData();
fdata.append('file',dis.find('input[type="file"]').files[0]);
fdata.append('full_name',dis.find('input[name="full_name"]').val());
});
});
但它给了我这个错误
未捕获的TypeError:无法读取属性&#39; 0&#39;未定义的
有任何帮助,想法吗?
答案 0 :(得分:1)
FormData接受表单元素
作为输入尝试以下
fdata = new FormData($(this)[0]);
删除追加
答案 1 :(得分:1)
由于dis.find('input[type="file"]')
返回jQuery对象并且他们没有files
属性,因此您收到错误,您需要获取底层DOM元素然后访问该属性。所以使用
dis.find('input[type="file"]')[0].files[0]
而不是
dis.find('input[type="file"]').files[0]