2012-03-08 11 views
1

入力フィールドの表があります。経験不足のユーザーがフォームを使用するので、最悪の場合に備えたい。onChangeより前の入力をキャッチし、数字のみを入力することをお勧めします。

私は、入力フィールドが変更されるとすぐにテーブルの行を強調表示するコードをいくつか作成しました。ここでの欠点は、ユーザが入力フィールドの外側をクリックした後にコードがトリガされることです。

私が達成しようとしていることは、次のとおりです。すべての桁後

  • とすぐに何かにユーザーの種類として、でもトリガされ、など、テーブルの行をハイライト表示されます。このイベント/バックスペースを入力します。後で、フォームをローカルに自動的に保存するようにこの関数を拡張したいが、後でそのコードを理解する。
  • は第二に、それは価格の形式で、ユーザはのみ、彼らはフルHTML5とCSS3のサポートを持って使用するブラウザを数字

を入力することができればそれは素晴らしいことだ、とのようにJavaScriptエンジン私はjQueryの最新バージョンを使用しています。

PS。これを示唆することに不利な点がある場合は、私にも知らせてください。

+0

keyup()を使用すると、 blur()の代わりにちょうど推測ですが、あなたが何を試して見ていない私は分かりません。 HTML5では、入力タイプ= "数字"を設定することができます –

答えて

5

イベントを使用すると、このイベントが発生する頃に入力の値が更新されますが、ユーザーの前に値を変更することができますblur

更新

あなたは、正規表現使って数字だけに入力を制限することができます。ここでは

//bind to the `keyup` event for all `input` element(s) 
$('input').on('keyup', function() { 

    //replace the value of this input by only the digits in it's value 
    //note that this method works even if the user pastes a block of text into the input 
    this.value = this.value.replace(/[^0-9]/gi, ''); 
});​ 

をデモです:http://jsfiddle.net/bKsTG/1/

+0

これは素晴らしいです。 –

2

keyUpイベントを使用し、event.keyCodeをチェック数字であるかどうかを確認する値

$('selector').keyup(function(event){ 
    if (event.keyCode in [48,49, 50 .... 57,13]){ /* your code*/ }; 
}); 
関連する問題