Javascript使用keyup自动更改最小和最大数字

时间:2018-04-10 07:08:07

标签: javascript

我无法使用键盘删除键删除最后一个数字1,就像<= 0一样,然后值变为1,所以我必须选择输入中的所有数字,得到的号码改变了吗?感谢

这不是改变数字的有效方法。

是否有更好的解决方案让我删除最后一位数字并使用键盘输入数字。

&#13;
&#13;
 document.getElementsByClassName('numInput')[0].addEventListener("keyup", function(e) {
   if (e.target.value > 10) {
     this.value = 10;
   } else if (e.target.value <= 0) {
     this.value = 1;
   }
 });
&#13;
<input type="number" value=1 class="numInput">
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

您可以在length替换1之前检查输入值的e.target.value.length

&#13;
&#13;
document.getElementsByClassName('numInput')[0].addEventListener("keyup", function(e) {
  if (e.target.value > 10) {
    this.value = 10;
  } else if (e.target.value.length && e.target.value <= 0) {
    this.value = 1;
  }
});
&#13;
<input type="number" value=1 class="numInput">
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以在此处看到3种不同的方法:

function GetId(id) { return document.getElementById(id); }

function SetNumberInput(e, min, max) {
  console.log(e)
  if (e.value > max)
    e.value = max; 
  else if (e.value.length && e.value < min)
    e.value = min;
}

const input2 = GetId('numInput2')
input2.addEventListener("keyup", ()=>{SetNumberInput(input2, 1, 10)});
const input3 = GetId('numInput3')
input3.addEventListener("keyup", ()=>{SetNumberInput(input3, 1, 10)});
Min and Max in input tag<br>
<input type="number" min=1 max=10 value=1 id="numInput1"><br><br>
JavaScript add to input tag<br>
<input type="number" value=1 id="numInput2"><br><br>
Combined from above tags<br>
<input type="number" min=1 max=10 value=1 id="numInput3">

  1. 当您在所请求的范围之外输入数字时,第一种方法会变为红色。
  2. 第二种方法将允许用户将值增加到您要求的范围之外。
  3. 第三种方法无法超出要求的范围。

答案 2 :(得分:0)

数字类型输入是HTML5,这意味着您可以在元素上指定最小值和最大值。例如。 <input type="number" min="0" max="1">。这里不需要Javascript。