我有一個文本框,它不需要用戶輸入任何特殊字符。他可以輸入:帶有字母數字檢查的文本框中的javascript
- A-Z
- A-Z
- 0-9
- 空間。
還有一個條件是第一個字母應該是字母。 如何在每個按鍵上進行JavaScript驗證?
我有一個文本框,它不需要用戶輸入任何特殊字符。他可以輸入:帶有字母數字檢查的文本框中的javascript
還有一個條件是第一個字母應該是字母。 如何在每個按鍵上進行JavaScript驗證?
add a onKeyUp =「javascript:checkChar(this);」到輸入框。
function checkChar(tBox) {
var curVal = tBox.value;
if (/[^A-Za-z0-9 ]/.test(curVal)) {
//do something because he fails input test.
}
}
alernatively檢查只是被按下,你可以從事件搶鍵碼,像這樣的關鍵:
的onkeyup = 「JavaScript的:checkChar(事件);」
function checkChar(e) {
var key;
if (e.keyCode) key = e.keyCode;
else if (e.which) key = e.which;
if (/[^A-Za-z0-9 ]/.test(String.fromCharCode(key))) {
//fails test
}
}
錯過關於第一個字符的一部分,但你可以做的文本框的值的測試作爲第一個例子:
/^[A-Za-z]/.test(curVal)
甚至用第二種方法,但通過文本框以及所以你可以得到它的全部價值。
您應該檢查文本框的onkeydown事件處理程序中按下的鍵,如果它不符合條件,然後從處理程序return false
。使用鍵盤將不允許您防止字符被實際輸入到文本框中。
我不認爲你應該檢查每個按鍵,這可能是非常惱人的用戶。
只需在失去焦點或提交時檢查輸入。
要做到這一點,你可以使用正則表達式,並使用此模式:
`/[a-z]{1}[a-z0-9]/i`
您還可以看看JQuery Validation Plugin
此功能將檢查提供給它的這些標準的字符串:
function checkvalue(value) {
return value.match(/[A-Za-z][A-Za-z0-9 ]*/);
}
然後,您可以使用在onkeypress事件的事件,傳遞當前值。
現在我們已經有了HTML5,你甚至不需要使用JavaScript。您可以使用pattern
屬性。
<input type="text" pattern="[A-Za-z][A-Za-z0-9 ]*" title="Description of format" />
的pattern
屬性應包含regular expression定義的格式。並且title
應該包含一個人類可讀的格式描述。
然後根據瀏覽器進行驗證,瀏覽器將以紅色勾勒該字段並/或顯示一條消息,說明您對該格式的描述。
本教程將更詳細地介紹:HTML5 Input Validation Tutorial。
這可能是一個很好的驗證,但topicstarter要求爲其文本框啓用輸入掩碼。 – Natrium 2009-06-04 12:47:17