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()