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

时间:2014-01-28 08:19:40

标签: javascript dojo

我有一个文本框,只能在按键上接受整数。我通过

使用键码实现了这一点
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
  dojo.stopEvent(evt);
}

现在,在keypress上我必须将输入的值从1到100(包括100)限制,并且应该允许退格字符使用户能够删除数字。我必须在本机javascript或dojo库中实现。有没有办法实现这两个目标?

2 个答案:

答案 0 :(得分:0)

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

但如果确实想要这样做,不要测试按下的键,测试控件中的实际值:

<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
  } 
}

现在,在用户键入时以及将值发送到服务器时,可以使用相同的功能。如果您必须使用keyCode进行此分配,那么您需要允许许多代码而不仅仅是数字(见上文)。

答案 1 :(得分:0)

你看过道场的Number Text Box了吗?这听起来就像你想要的那样,你可以限制内容的范围。