2011-06-29 68 views
0

相當奇怪的小問題,我正在這個簡單的表單字段驗證腳本。表單驗證regex.test(value)返回true,但如果它是假的,想法呢?

我有3個字段,1個文本輸入名稱,1個電子郵件輸入和1個註釋文本區域。

基本上現在發生的事情是,如果你離開任何領域並擊中提交,我將.error.valid類分配給適當的dom對象。

但奇怪的是,如果你錯過了其中一個字段,如跳過名稱字段,填寫其他字段,點擊提交,然後嘗試填寫名稱,驗證,即使它識別字段值傳遞給正則表達式(/.+/gi),它會應用錯誤類,因爲它將該字段標記爲failed

任何想法,我做錯了將不勝感激。

代碼示例了對JS小提琴:http://jsfiddle.net/jannis/YXfZN/

注:此錯誤是發生在Mac(五12.0.742.112)在Chrome中聯小提琴再現。

感謝您的關注, 我期待您的意見和建議。

Jannis

回答

1

這是因爲g標誌。因爲你的正則表達式變得粘滯。與此相同的問題:Regex in javascript fails every other time with identical input

如果在控制檯中測試此代碼(regex[type].test('a')),則每次都會得到不同的結果。

再試一次沒有g的標誌。

+0

太棒了!非常感謝您的評論。不知道這是關鍵的錯誤:)也感謝鏈接,那裏有很好的信息。 – Jannis

相關問題