jQuery .serializeObject不是一个函数 - 仅在Firefox中

Was*_*sim 8 firefox jquery

我正在使用jQuery,特别是这个函数

$("#postStatus").serializeObject();

它在Chrome和Safari中运行得非常好,但是当我在Firefox中使用它时它不起作用.我用Firebug看看它给出了什么错误,我得到了这个

$("#postStatus").serializeObject is not a function

为什么这个功能在Firefox中不起作用?

更新中...

哦,是的,我完全忘记了它不是核心功能.我记得我搜索了一种方法来序列化一个表格并找到了这个解决方案;

$.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;
};
Run Code Online (Sandbox Code Playgroud)

我已经设法通过将上面的函数放在JS文件的顶部来解决这个问题.谢谢你的帮助.

Raf*_*fay 7

AFAIK jQuery没有定义serializeObject其核心功能.可能你正在使用一个插件,并且它只在Firefox中存在问题,因此可以安全地假设你的脚本包含正确,尝试将你的代码包装在就绪处理程序中

$(function(e){
$("#postStatus").serializeObject();
});
Run Code Online (Sandbox Code Playgroud)

或者您可以将javascript放在页面底部.

DEMO