JavaScript で数字のみを入力する
JavaScript の特定のメソッドまたはプロパティでは、HTML の input フィールドが number タイプの値のみを取得できるようにすることはできません。むしろ、入力ボックスの数値タイプの値のみを受け取る input フィールドの属性 number があります。
数値のみをフィルタリングするタスクを実行する別の方法は、input フィールドタイプを input に設定することです。これは、ほぼすべての種類の可能な入力を有効にすることを意味します。これは、英数字の値を考慮に入れます。
JavaScript コードに含まれる特定の条件は、数値のみを受け入れるようにフィルタリングされます。
次の場合は、keypress イベントを処理し、その keyCode を取得します。その後、私たちの動機に基づいて、数値タイプのデータのみを検証するためのいくつかの条件を設定します。
1つの例には number 属性があり、もう 1つの例には入力フィールドの input 属性があります。
JavaScript でフィールド属性 number を使用し、keyCode の条件を設定する
この例では、JavaScript コードベースに対応する入力フィールドがあります。最初に、event.keyCode または event.which を介して keyCode を取得します。
この keyCode と which はブラウザごとに同じように機能します。したがって、最終的にはコードに基づいて、値をフィルタリングします。
コードフェンスを確認してみましょう。
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<input name="someid" type="number" onkeypress="isNumberKey(event)"/>
<div>
</div>
<script>
function isNumberKey(evt){
var charCode = (evt.which) ? evt.which : evt.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
$(document).ready(function(){
$("input").keydown(function(event){
$("div").html("Key: " + event.which);
});
});
</script>
出力:

ご覧のとおり、a=65、b=66、c=67 を押しましたが、これらの値は受け入れられませんでした。その後、値 4 と 2 が入力ボックスに配置されました。
JavaScript でフィールド属性 input を使用し、keyCode の条件を設定する
同様に、このセグメントの入力フィールドに JavaScript コードを設定しますが、この属性は input に設定されます。デフォルトでは、Number タイプ属性は数字を受け取り、他の文字を除外しますが、input タイプの場合、バックスペースや文字などの他の文字を入力する権限があります。
ここで、JavaScript コードは、数値のカウントのみを検証します。
コードスニペット:
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<input type="input" id="edit1" size="11" maxlength="10" />
<div>
</div>
<script>
$(document).ready(function(){
$('[id^=edit]').keypress(validateNumber);
});
function validateNumber(event) {
var key = window.event ? event.keyCode : event.which;
if (event.keyCode === 8 || event.keyCode === 46) {
return true;
} else if ( key < 48 || key > 57 ) {
return false;
} else {
return true;
}
};
$(document).ready(function(){
$("input").keydown(function(event){
$("div").html("Key: " + event.which);
});
});
</script>
出力:

