2009-06-04 12 views
2

私はテキストボックスを持っており、ユーザーが特殊文字を入力する必要はありません。彼は次のように入力できますJavaScriptが英数字で入力されたテキストボックス

  1. A-Z
  2. -Z
  3. 0-9
  4. スペース。

最初の文字はアルファベットでなければなりません。 キーの押下ごとにJavaScript検証を行うにはどうすればよいですか?

答えて

9

add a onKeyUp = "javascript:checkChar(this);"入力ボックスに入力します。

alernatively
function checkChar(tBox) { 

    var curVal = tBox.value; 

    if (/[^A-Za-z0-9 ]/.test(curVal)) { 

     //do something because he fails input test. 

    } 

} 

あなたがそうのようなイベントからキーコードをつかむことができます押されたキーJUSTチェックする:

onKeyUpを= "ジャバスクリプト: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を選択する必要があります。 keyupを使用しても、文字が実際にテキストボックスに入力されないようにすることはできません。

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

+0

+1正規表現を取得するための右。 –

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です。

関連する問題