调用函数时“未捕获的TypeError:对象不是函数”

时间:2012-05-23 04:00:44

标签: javascript jquery wordpress

我的代码出现了这个奇怪的错误。我正在尝试通过添加特定的触发器来解决[使用]在Chrome中工作而不在IE中的页面(惊慌失措),但现在我在Chrome的控制台中收到Uncaught TypeError: object is not a function错误。

据我所知,这是一个功能(正在进行中):

<script type="text/javascript">
    function validate() {                
            var id = jQuery("form").attr('id');
            var formid = "#"+id;
            jQuery(formid).add("<input type=\"hidden\" name=\"APC_UPLOAD_PROGRESS\" value=\""+id+"\" />");
            jQuery("#validate").hide();
            jQuery("#submitme").show();
    }
</script>

以下代码调用它:

<button id="validate" onClick="validate()" type="button">Validate</button>

我没有使用<input type="submit>因为我有额外的表单提交JS来运行。

所以当我点击按钮时,页面什么也没做,我在控制台中得到了名义上的错误。

我尝试使用jQuery.fn.validate = function(){};,但无济于事。

为了使这个更有趣,该网站是Wordpress,这个特殊的页面加载jQuery和MooTools以及直接JS。

简而言之;我犯了什么愚蠢的小错误?谷歌上的所有搜索都已有数年的历史,并且由我认为是课程生成。

更新

控制台说这行是错误

<button id="validate" onClick="validate()" type="button">Validate</button>

更新2

表单代码http://pastebin.com/3Kw5vdhn

的Pastbin链接

2 个答案:

答案 0 :(得分:2)

在Chrome浏览器中,您可以要求JS执行在异常时停止。要启用它,请打开JS控制台,然后单击主面板和控制台之间的胡须左侧的小图标。如果图标为蓝色,您将停止对所有异常执行,如果仅对未捕获的异常为红色,如果为灰色则不会停止。

因此,请单击直到它为红色以停止未捕获的异常。运行您的网页,执行应该在引发异常时完全停止。然后,您可以检查validate变量的值。

我怀疑这是你的代码和你正在加载的其他代码之间的某种全局可变冲突。要快速检查,请重命名验证QQvalidate之类的内容并尝试使用您的代码。

答案 1 :(得分:0)

嗨约书亚我尝试在我的电脑上运行相同的代码并且工作正常,检查你的参考资料(jQuery源文件等)。