我有HTML表单(有用户图片和数据)我使用以下代码提交它。问题是,它有时提交所有数据和图片文件,但有时它会遗漏一些输入文本字段数据。例如,有时用户名不会在数据中提交。
$("button#btn-save").click(function(){
fd = new FormData;
$.each($('#user-form').serializeObject(), function(key, val){
fd.append(key, val);
});
pic = $("input[name=pic]")[0].files[0];
fd.append('pic', pic);
$.ajax({
url: 'employee/save-new-employee',
type: 'post',
dataType: 'json',
processData: false,
contentType: false
data: fd,
success: function(data, status, xhr){
//somecode
},
error: function(d){
//errorhandling
}
});
});
这是serializeObject函数:
$.fn.serializeObject = function(){
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
}