我的代码遇到了这个奇怪的错误。我正在尝试通过添加特定触发器来解决[过去]在 Chrome 中工作但在 IE 中无法工作的页面(令人惊讶),但现在我得到了 Uncaught TypeError: object is not a function
Chrome 控制台中出现错误。
据我所知,这是一个函数(正在进行中):
<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
Pastbin 链接到表单代码 http://pastebin.com/3Kw5vdhn
最佳答案
在 Chrome 浏览器中,您可以要求 JS 执行在出现异常时停止。要启用此功能,请打开 JS 控制台,然后单击主面板和控制台之间 mustache 左侧的小图标。如果图标为蓝色,您将停止所有异常的执行,如果图标为红色,则仅在未捕获的异常上停止执行,如果图标为灰色,则根本不停止。
因此单击直到它变成红色以停止未捕获的异常。运行您的网页,执行应该在引发异常时完全停止。然后您可以检查验证变量的值。
我怀疑这是您的代码与您正在加载的其他代码之间的某种全局变量冲突。要快速检查,请将 validate 重命名为 QQvalidate 并尝试您的代码。
关于javascript - 调用函数时为"Uncaught TypeError: object is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10713258/