您不显示如何或何时加载代码,所以执行时未知。
未提供文档标记,因此无法确定可能或不可行,或者原因。以下是一些改进建议,它们可能会或可能不会有任何改变。
下面的语句:
> 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 + '|');
的提交功能未在发布代码调用。
大部分的剧本显得很低效:
> 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对象。
我重写了一切,现在是工作,谢谢你的指点优化提示,因为没有其他答案,我会将你的标记标记为正确的。 –