現在、私は次のコードを持っています
<input type="number" />
このようなものに出てきます
右側の小さなセレクターは、数値を負にすることができます。どうすればそれを防ぐことができますか?
の使用に疑問type="number"
があります。解決するよりも多くの問題を引き起こしています。とにかく健全性をチェックするつもりなので、使用に戻るべきtype="text"
ですか?
現在、私は次のコードを持っています
<input type="number" />
このようなものに出てきます
右側の小さなセレクターは、数値を負にすることができます。どうすればそれを防ぐことができますか?
の使用に疑問type="number"
があります。解決するよりも多くの問題を引き起こしています。とにかく健全性をチェックするつもりなので、使用に戻るべきtype="text"
ですか?
それは、どれだけ正確になりたいかによって異なります。整数のみを受け入れたい場合は、次のようにします。
<input type="number" min="1" step="1">
たとえば、小数点以下2桁の浮動小数点数が必要な場合:
<input type="number" min="0.01" step="0.01">
タグonkeypress
内に追加することで、入力に正の整数のみを強制的に含めることができます。input
<input type="number" onkeypress="return event.charCode >= 48" min="1" >
ここでevent.charCode >= 48
は、0 以上の数値のみが返さmin
れることを保証しますが、タグは、入力バー内をスクロールすることで最小の 1 に到達できることを保証します。
試す
<input type="number" pattern="^[0-9]" title='Only Number' min="1" step="1">
負の数値を入力しようとすると、onkeyup イベントがこれをブロックし、入力数値に矢印を使用すると、onblur イベントがその部分を解決します。
<input type="number"
onkeyup="if(this.value<0)this.value=1"
onblur="if(this.value<0)this.value=1"
>
このコードを入力タイプに追加します。
onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 57"
例えば:
<input type="text" name="age" onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 57" />
他の解決策は、Js を使用してそれを正にすることです (min オプションは無効にすることができ、ユーザーが smth を入力した場合は無効になります) 負の if は必要なく、on('keydown') イベントも使用できます!
let $numberInput = $('#whatEverId');
$numberInput.on('change', function(){
let numberInputText = $numberInput.val();
if(numberInputText.includes('-')){
$numberInput.val(Math.abs($numberInput.val()));
}
});
type=number を使用すると、入力フィールドの矢印キーや上下キーでの値の変更などの問題に直面するため、数値の代わりに type text を使用するのが最適だと思います。
<input type="text" onkeypress="return event.charCode>=48 && event.charCode<=57" />