jQuery .serializeObject不是一个函数 – 只在Firefox中
我正在使用jQuery,特别是这个函数
$("#postStatus").serializeObject();
它在Chrome和Safari中运行得非常好,但是当我在Firefox中使用它时它不起作用。 我使用Firebug来查看它给出的错误,我得到了这个
$("#postStatus").serializeObject is not a function
为什么这个function在Firefox中不起作用?
更新中…
哦,是的,我完全忘记了它不是核心function。 我记得我搜索了一种方法来序列化一个表格并找到了这个解决方案;
$.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name]) { 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; };
我已经设法通过将上面的函数放在JS文件的顶部来解决这个问题。 谢谢你的帮助。
AFAIK jQuery没有在其核心中定义为serializeObject
函数。 可能你正在使用一个插件,并且它只在Firefox中存在问题,所以可以安全地假设你的脚本包含正确,尝试将你的代码包装在就绪处理程序中
$(function(e){ $("#postStatus").serializeObject(); });
或者您可以将javascript放在页面底部。
DEMO
您可能还想查看https://github.com/citnvillareal/serializeObject 。
样品使用
控制台输出
Object { txt01: Array(2) { 0: Object { name: Text 01 phone: 000001 }, 1: Object { name: Text 02 phone: 000002 } } }
有关详细信息, 请单击此处
尝试serialize()或serializeArray()而不是serializeObject()