問題:我有一個使用下面的代碼在onpress
,onkeydown
HTML文本輸入,並onkeyup
事件:正則表達式驗證不允許HOME,END,箭頭鍵的工作
this.value = this.value.replace(/[^a-zA-Z0-9]/, '')
該作品用於字母數字驗證,但不允許使用主頁鍵,結束鍵或方向鍵放置光標;光標只能使用退格鍵移動。說實話,在某些情況下這是可取的行爲,但在其他情況下則不行。
爲什麼在Firefox和Chrome中這種行爲(還沒有在IE中測試過)?我的問題在於它與this.value =
部分將光標放在最後,因爲我從未見過箭頭鍵等的正則表達式。
這不是正則表達式,你可能在某處返回false,並取消該鍵。請張貼更多的代碼。 – bfavaretto 2013-03-19 21:12:31
這應該是所有必要的代碼,但我發佈了整個輸入標籤的代碼(非常冗餘)。雖然退格工作,刪除不會,家庭或方向鍵也不會。正如問題所述,我認爲這與這個價值部分有關。 – Adam 2013-03-19 21:14:06
你是對的。由於每次擊鍵都會替換整個內容(實際上,每次擊鍵都會重複3次),所以在替換之後插入符會被放置在最後。 – bfavaretto 2013-03-19 21:16:52