2009-06-04 42 views

回答

9

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) 

甚至用第二種方法,但通過文本框以及所以你可以得到它的全部價值。

0

您應該檢查文本框的onkeydown事件處理程序中按下的鍵,如果它不符合條件,然後從處理程序return false。使用鍵盤將不允許您防止字符被實際輸入到文本框中。

0

我不認爲你應該檢查每個按鍵,這可能是非常惱人的用戶。

只需在失去焦點或提交時檢查輸入。

要做到這一點,你可以使用正則表達式,並使用此模式:

`/[a-z]{1}[a-z0-9]/i` 

您還可以看看JQuery Validation Plugin

1

此功能將檢查提供給它的這些標準的字符串:

function checkvalue(value) { 
    return value.match(/[A-Za-z][A-Za-z0-9 ]*/); 
} 

然後,您可以使用在onkeypress事件的事件,傳遞當前值。

+0

這可能是一個很好的驗證,但topicstarter要求爲其文本框啓用輸入掩碼。 – Natrium 2009-06-04 12:47:17

0

現在我們已經有了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

相關問題