您不顯示如何或何時加載代碼,所以執行時未知。
未提供文檔標記,因此無法確定可能或不可行,或者原因。以下是一些改進建議,它們可能會或可能不會有任何改變。
下面的語句:
> 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對象。
我重寫了一切,現在是工作,謝謝你的指點優化提示,因爲沒有其他答案,我會將你的標記標記爲正確的。 –