要件:入力ボックスには、0、正の整数、および負の整数のみを入力できます。負の符号は1つのみ入力でき、上部には負の符号のみを入力できます。最初の桁は0で、2番目の桁は次の場合に自動的にクリアされます。 0より大きい数値がビット0に入力されます(例:01は1、00は0、-0は0)。
1. onkeyupを使用すると、0、正の整数、および負の整数のみを入力できます。負の符号のみを入力でき、上部に負の符号のみを入力できますが、0を入力すると状況を制御できません。
<input type="text" name="phone" class="layui-input" onkeyup="value=value.match(/^-?[0-9]\d*$/)||value.match(/-?/)">
2.要件を達成するには、最初にbind onkeyupを入力してから、入力0を制御するメソッドを記述します。ページ上の複数の場所を呼び出したいのですが、入力にnum-inputクラス名を追加するだけです。
<input type="text" name="phone" class="layui-input num-input" onkeyup="value=value.match(/^-?[0-9]\d*$/)||value.match(/-?/)">
//输入框只能输入数字 0 正整数 负整数
$(document).on('input', '.num-input', function () {
let val = $(this).val();
//输入大于0的数字时候自动清空前面的0
if (val > 0) {// 01 => 1
if (val[0] == 0) {
val = val.substr(1);
}
} else if (val == 0) {
if (val[0] == 0) {// 00 => 0
val = val.slice(0, 1);
} else if(val[0] == "-"){ // -0 => 0
val = 0;
}
} else {
if (val[1] == 0) {// -2 在中间写0 -02 => 0
val = 0;
}
}
$(this).val(val);
});