2009-03-18 13 views
6

Javascriptでユーザー入力(入力タグ)を制限する例を表示できますか?javascriptを使用してユーザー入力を制限する

数字のみを受け入れるように、我々は、入力を設定する何か(タイプ=「テキスト」)を、それが数値以外の他の入力は無視されますので...

私は(それが数字入力のために便利だと思うようなジップ、クレジットカード、お金、値、スコア、日付など)、そしてあなたのようなもの、パターンと入力を作成する方法を私に示してくださいすることができた場合:私は、Webフォーム2.0を聞いた :

 
Please Input Date: 
|-----------------| 
| / / | 
|-----------------| 

PS将来これをサポートします...(Acid 3準拠のブラウザですか?)

入力タイプ= "日付"
入力タイプ= "時間"
入力タイプ= "数"
入力タイプ= "お金" を

しかし、それは未来からのニュースだけだった:D

答えて

8

これは役に立ちます。

http://www.w3schools.com/jsref/event_onkeydown.asp

<html> 
<body> 

<script type="text/javascript"> 
function noNumbers(e) 
{ 
var keynum; 
var keychar; 
var numcheck; 

if(window.event) // IE 
{ 
keynum = e.keyCode; 
} 
else if(e.which) // Netscape/Firefox/Opera 
{ 
keynum = e.which; 
} 
keychar = String.fromCharCode(keynum); 
numcheck = /\d/; 
return !numcheck.test(keychar); 
} 
</script> 

<form> 
<input type="text" onkeydown="return noNumbers(event)" /> 
</form> 

</body> 
</html> 
+0

はい、単純な文字フィルタリングには機能しますが、日付( "mm/dd/yy")のような本格的なフォーマットはどうでしょうか?正しい形式でない場合は、falseを返すことはできません。さもなければ、最初の数字を入力することはできません。 –

+1

それは当てはまりませんが、それがどうやって作られるかについてある程度のアイデアが与えられています。 Fx。日付ストリングの最初のチャレクターに0と1だけを入力することができます。ユーザーがそれ以上の数字を入力すると、その番号は登録されません。しかし、はい、この特定のコードは、すべての魔法を行うわけではありません。 –

+0

はい、私はちょうど明快にコメントしました;) –

3

フォームの送信時にjQuery Validate(JSフレームワークが提供するもの)のような特定のライブラリを使用できます。もう1つの解決策は、keyUp &ブラーイベントの値を制御することですが、フォーマットが複雑な場合(特に、望ましくない文字の場合など)には、何ができないのかを決めるのが非常に面倒になることがあります。だから、私はクライアント側の制御を提出することをお勧めしたいと思います。

+0

私はすでにフォーム提出確認メソッドを持っています:D – Dels

5

この質問はすでに受け入れ答えを持っているが、私はこれまでよりよい解決策があると思います。 keydownなどでそれを実装する必要はありません。そのためのライブラリがあります。彼らはあなたが "入力マスク"を記述するテクニックを呼び出します。 this jQuery pluginをチェックしてください。

+1

このjQueryプラグインは素晴らしいです。 – Matthew

+0

私はそのプラグインが大好きですが、問題が多すぎるネイティブブラウザとクロムブラウザの両方で複数のAndroidデバイスに問題が残っています。ほとんどの場合、アンドロイドについては、通常、マスクを完全に取り除くことになります。 –

関連する問題