我对表单使用了这个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;
};`
我可以为ajax调用执行此操作
$('form#changeprofileform').serializeObject();
这适用于我的文本字段,但是当我想上传文件时,input type="file"
不在对象中,因此我无法将其发送到服务器上传。
我在stackoverflow上搜索过,但我找不到任何有用的东西。
有谁知道为什么这不起作用以及我能做些什么呢?
P.S。我知道可以使用iframe上传文件,但我想这样做
谢谢!
修改 我可以在没有serializeObject函数的情况下执行它并使用.val发送所有输入,但这在IE9中不起作用:(