Javascript 仅允许整数,且值应介于1和100之间

Javascript 仅允许整数,且值应介于1和100之间,javascript,dojo,Javascript,Dojo,我有一个文本框,在按键时只能接受整数。我通过使用keycode实现了这一点 var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode < 48 || charCode > 57)) { dojo.stopEvent(evt); } var charCode=(evt.which)?evt.which:event.keyCode 如果(字符码>3

我有一个文本框,在按键时只能接受整数。我通过使用keycode实现了这一点

var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
  dojo.stopEvent(evt);
}
var charCode=(evt.which)?evt.which:event.keyCode
如果(字符码>31&(字符码<48 | |字符码>57)){
dojo.stopEvent(evt);
}

现在,在按键时,我必须将输入的值限制在1到100(包括100)之间,并且应该允许使用退格字符来允许用户删除数字。我必须在本机javascript或dojo库中实现。有什么方法可以同时实现这两个目标吗?

修改用户输入的内容真的很烦人,最好是在屏幕上提示用户所需的格式,并在发送到服务器时验证值(或者无论您使用它做什么)

但是,如果确实要执行此操作,请不要测试按下的键,而是测试控件中的实际值:

<input ... onkeyup="checkValue(this.value);">

以及功能:

function checkValue(s) {

  // use a regular expression to test the value is only digits
  var re = /^\d+$/;

  if (re.test(s) && s > 0 && s < 100) {
    // do success stuff

  } else {
    // do failed stuff
  } 
}
函数校验值{
//使用正则表达式测试值是否仅为数字
变量re=/^\d+$/;
如果(重新测试和&s>0和&s<100){
//做成功的事
}否则{
//做失败的事
} 
}

现在,当用户键入以及将值发送到服务器时,也可以使用相同的函数。如果您必须使用keyCode来完成此任务,那么您需要允许许多代码,而不仅仅是数字(见上文)。

您看过dojo的吗?这听起来正是您想要的,您可以限制内容的范围。

不要使用charCode。读取该值并测试它,否则将排除所有类型的有效击键,如退格、光标键按下等。此外,用户可以将任何内容粘贴到控件中,而您根本不会得到键代码。