這是一個令人困惑的問題。驗證外部.js文件中的RegExp
我有一個網站使用AJAX,其中主要主頁加載一個home.js文件與網站上所有網頁所需的核心腳本。一個這些核心腳本是下述正則表達式:
var datePattern = new RegExp("^([0][1-9]|[1][0-2])\/([0][1-9]|[1-2][0-9]|[3][0-1])\/([12][0-9][0-9][0-9])$");
當用戶進入一個頁面(通過AJAX),適當的形式驗證的script.js文件被加載第一其中包含以下驗證日期(其中val是日期元素的值並正確顯示預期日期值):
var val=elem[i].value;
if (!datePattern.test(val)) {
elem[i].style.background="#FF0000";
errno++;
}
我已經過了兩個劇本,並通過驗證的HTML和一切似乎是好的。
一切工作正常FF。但在IE中。我收到datePattern未定義的消息。關於home.js文件中的datePattern聲明,我需要進行更改以確保它對全局可用於其他js文件是什麼?
謝謝!
難道你不使用已經有日期驗證的Javascript庫嗎? – fge 2012-01-08 16:46:33
當您嘗試訪問該功能時,該文件可能未加載。 IE不喜歡setTimeout或推遲 – mplungjan 2012-01-08 17:42:57
不,我沒有使用JS庫,儘管它值得研究。至於正在加載的文件,是的,它實際上是加載的。 home.js文件中的腳本完美地工作,包含$ datePattern.test函數的腳本工作正常......它只是將datePattern註冊爲Undefined。 (還有其他驗證步驟發生在該工作之前和之後,如果我跨過datePattern,則會發生這種情況。) – Max 2012-01-08 18:10:54