2017-12-13 3 views
1

上の入力欄に入力されていることが9防止小数点以下は、私はデスクトップブラウザ上で利用者を確保するためにうまく機能し、このJavaScriptコードを、持っている携帯

に文字1のみを入力することができ、提示されるキーパッドは、フィールドが受け入れるダッシュおよびピリオド文字を含む。どうすればこれを防ぐことができますか?

function isNumberKey(evt) { 
     var charCode = (evt.which) ? evt.which : evt.keyCode; 
     if (charCode > 31 && (charCode < 48 || charCode > 57)) 
      return false; 
     return true; 
    } 

UPDATE:

これは私がHTMLで機能を使用しています方法です:

<input type="number" class="form-control" 
     onkeypress="return isNumberKey(event)" /> 

私はコードに数値以外の文字をコピーして貼り付けることができることを防止するために別の機能を持っています。

$(document).ready(function() { 
     $('#number').bind("cut copy paste drag drop", function(e) { 
      e.preventDefault(); 
     });  
    }); 

その他すべてが失敗した場合は、サーバー側の検証が行われます。

フロントエンドで小数点以下の桁数を使用しないようにしたいと考えています。私が指定した文字範囲は、罰金のキーボードではこの制限を覚えていますが、数字キーパッドで入力できる数字キーパッドの数字は.です。

+0

あなたが望むすべてが数値である場合は、その理由を明示的48の範囲をチェックしません - 57?なぜ31チェックがそこにあるのかわからない – Taplar

+0

このメソッドを使用しているイベントバインディングはどのように表示できますか? – Taplar

+0

@Taplarバックスペースを許可することはできますか?私は詳細を与えるために私の答えを更新しました – egmfrs

答えて

0

一つの可能​​な解決策:

<script> 
 
function onlyNumbers(num){ 
 
    if (/[^0-9]+/.test(num.value)){ 
 
     num.value = num.value.replace(/[^0-9]*/g,"") 
 
    } 
 
} 
 
</script> 
 
<input type="text" onkeyup="onlyNumbers(this)">

+0

ありがとう、私は後でそれをチェックする – egmfrs

0

数字の範囲を設定するには、 type = numberを指定すると、数値だけが使用できます。

Quantity (between 1 and 5): <input type="number" name="quantity" min="1" max="5">

+1

それは1.1,1.1111,4.9876などを置くことができます - また、 'number'の入力タイプは私の問題を助けません。私はすでにそれを使用しています。ご覧のとおり、数字以外の文字のキー入力をキャンセルするには、余分なJavaScriptが必要です。 – egmfrs

+0

ああ、私は質問を誤解しました! – Dylan

関連する問題