我们有一个简单的Jquery函数来序列化表单的输入,并在$(document).ready()
(function( $ ){
$.fn.serializeObject = function() {
var formObj = {};
var a = this.serializeArray();
$.each(a, function() {
if (formObj[this.name] !== undefined) {
if (!formObj[this.name].push) {
formObj[this.name] = [formObj[this.name]];
}
formObj[this.name].push(this.value || '');
} else {
formObj[this.name] = this.value || '';
}
});
return formObj;
};
})( jQuery );
我们已多次使用此功能,并在提交表格时调用:
$(document).ready(function(){
$('#test').submit(function(){
var vars = $(this).serializeObject();
console.log(vars);
return false;
});
});
这总是有效但我们正在开发一个新项目,我们收到以下错误:
未捕获的TypeError:$(...)。serializeObject不是函数
这是fiddle
在新项目中,只有当serializeObject函数在文档就绪
内时才有效$(document).ready(function(){
(function( $ ){
$.fn.serializeObject = function() {
var formObj = {};
var a = this.serializeArray();
$.each(a, function() {
if (formObj[this.name] !== undefined) {
if (!formObj[this.name].push) {
formObj[this.name] = [formObj[this.name]];
}
formObj[this.name].push(this.value || '');
} else {
formObj[this.name] = this.value || '';
}
});
return formObj;
};
})( jQuery );
$('#test').submit(function(){
var vars = $(this).serializeObject();
console.log(vars);
return false;
});
});
我们使用相同版本的Jquery而没有其他外部库。 有任何想法吗?感谢
答案 0 :(得分:2)
您不止一次包含jQuery,而且这里发生了什么。这可以"删除"插件也是如此。