我的Javascript文件中有小错误(我猜)。这是一个简单的文件,但它在Firefox 6上没有按预期工作(在Chrome上工作正常)。 一切都在工作,除了submit(),而validate()只在document.ready中调用时才有效,如果我尝试直接访问这些函数,我得...
uncaught exception: ReferenceError: (function) is not defined
这是JS文件http://pastebin.com/raw.php?i=CMy4WYPF,它是在jQuery lib之后加载的,没有其他JS文件。
非常感谢你的帮助。
答案 0 :(得分:3)
您没有显示代码的加载方式和时间,因此执行代码时未知。
未提供文档标记,因此无法确定可能有效或无效的内容或原因。以下是一些改进建议,它们可能会有所不同。
以下陈述:
> var exception = $('#teligence-exception');
> var form = $('#teligence-ctc form');
位于脚本的顶部。执行语句时,DOM中是否存在ID引用的元素?
使用jQuery的 inArray 在数组中搜索代码在缺少本机Array.prototype.indexOf方法的浏览器中效率很低(这是很多)。最好将代码作为带分隔符的字符串,并使用无处不在的String.prototype.indexOf()方法,例如
var codes = '|201|202|203|';
...
var x = code.indexOf('|' + val + '|');
在发布的代码中未调用 submit 函数。
大部分脚本效率都很低:
> var val = $(this).val();
> $(this).val( val.replace(/[^0-9]/, '') );
可以
var val = this.value;
this.value = val.replace(/D/g, '');
请注意,在原始代码中,只会替换第一个非数字字符。在建议的代码中,所有非数字字符都将被替换(由 g 标志提供)。
此外:
validate($(this).attr('name'));
可以是:
validate(this.value);
等等。我们的想法是不创建不必要的jQuery对象。
答案 1 :(得分:0)
别忘了包括,
<script src="jquery-1.xx.x.min.js" type="text/javascript"> </script>
如果您使用的是jquery,则xx-x代表