我有一个文本框,只能在按键上接受整数。我通过
使用键码实现了这一点var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
dojo.stopEvent(evt);
}
现在,在keypress上我必须将输入的值从1到100(包括100)限制,并且应该允许退格字符使用户能够删除数字。我必须在本机javascript或dojo库中实现。有没有办法实现这两个目标?
答案 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了吗?这听起来就像你想要的那样,你可以限制内容的范围。