Javascript 不允许输入值达到9999以上?

Javascript 不允许输入值达到9999以上?,javascript,jquery,Javascript,Jquery,基本上,我想做的是防止有人在输入上达到9999以上 但问题是,如果他们输入55555,它就会通过 他们不能输入比这个更高的值,也可以删除它,但我不希望他们的值高于9999 有人有解决办法吗 编辑: 如果它检测到一个更大的数字,我还需要以某种方式阻止输入工作。在HTML中使最大长度等于4,并使用JS强制整数类型,将最大值放在输入上以防止大于9999。。。或者全部手动执行。由你决定 用JS。。。关于keydown:带非整数 $(document).on('keyup keydown',functio

基本上,我想做的是防止有人在输入上达到9999以上

但问题是,如果他们输入55555,它就会通过

他们不能输入比这个更高的值,也可以删除它,但我不希望他们的值高于9999

有人有解决办法吗

编辑:


如果它检测到一个更大的数字,我还需要以某种方式阻止输入工作。

在HTML中使最大长度等于4,并使用JS强制整数类型,将最大值放在输入上以防止大于9999。。。或者全部手动执行。由你决定

用JS。。。关于keydown:带非整数

$(document).on('keyup keydown',function(key){

    if(key.which >= 48 && key.which <= 57 && $('#sell').val() >= 9999 ) {
        return false;
    }
    else {
        if(key.which >= 48 && key.which <= 57 && $('#sell').val() <= 9999 ) {
            return true;
        }
    }
});
一旦完成

如果$inputID.val>9999{$inputID.val9999;}


记住,如果这是为了在服务器端验证答案的表单,那么客户端就不能覆盖HTML和JS检查

您可以尝试以下方法:

if($("#inputID").val().length > 4){ KILL EXTRA LETTERS } 
请注意,这仅捕获输入本身的关键事件,而不是整个文档。虽然这限制了用户键入48以下的数字字符,但允许空格,因为这些是箭头键和退格,如果您希望允许用户执行复制和粘贴等操作,则需要做更多的工作

不在key事件处理程序中测试输入的val的原因是时间问题:key down事件不会更改输入字段的值,而key up事件发生在值更新之后,要阻止值更改为时已晚

此代码所做的是让值暂时超出范围,但在发生这种情况时立即将其重置为最后一个有效值

点击这里:

试试这个:

var lastVal; $sell.on'keydown',函数{ ife.which==8{//允许退格 回来 }else ife.which<48 | e.which>57和&e.which<96 | e.which>105{//只允许数字和数字填充数字 返回false; } ife.target.value 9999{ e、 target.value=lastVal; 返回false; } };
试着这样做:这是Jquery。。。那是JavaScript吗?看起来HTML到meThat是一种讽刺btwMaybe尝试将val转换为int?+$'我想解释为什么投反对票?我也投了一张无法解释的反对票。如果你投我的票,我就投你的票那为什么要投反对票?当然!我讨厌这样的事情在没有任何解释的情况下发生。
let sell = $('#sell');
let lastVal = 0;

sell.on('keyup keydown', function(key) {
  let cc = key.which;
  return (cc <= 57 && cc !== 32);
});

sell.on('input', function(evt) {
  const newVal = sell.val();

  if (newVal < 0 || newVal > 9999) {
    sell.val(lastVal);
  }
  else {
    lastVal = newVal;
  }
});