试图阻止用户输入非数字或超出特定范围的数字
Trying to prevent user from entering a non-number or a number above a certain range
这是我到目前为止所拥有的内容,但问题是如果我输入数字16,它将不再允许我更改文本框中的内容。正在寻求如何解决这个问题的帮助,谢谢大家。
<SCRIPT language=Javascript>
<!--
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
var num = document.getElementById('quantity').value
var y = parseInt( num , 10 )
if ( y > 15 )
return false;
return true;
}
</SCRIPT>
<form action="RegServlet" method="post">
<p>
Enter quantity you would like to purchase : <input name="quantity" onkeypress="return isNumberKey(event)" id ="quantity" size=15 type="text" value="1"/>
</p>
</form>
这是一个可能的解决方案,我已经删除了您的内联事件处理程序,转而将其分配给addEventListener
我也从使用keypress
事件更改为使用keyup
我用正则表达式去除了任何非数字字符,而不是检查按下了什么。
我们对输入元素的value
进行parseInt,如果这个数字大于指定值,我们就截取最后一个输入的字符。
HTML
<p>Enter quantity you would like to purchase :
<input name="quantity" id="quantity" size=15 type="text" value="1" />
</p>
Javascript
var quantity = document.getElementById("quantity");
function verify(evt) {
var target = evt.target;
target.value = target.value.replace(/[^'d]/, "");
if (parseInt(target.value, 10) > 15) {
target.value = target.value.slice(0, target.value.length - 1);
}
}
quantity.addEventListener("keyup", verify, false);
关于jsfiddle
将整个事件封装在window.onload事件中。
票据
加载事件在文档加载过程结束时触发。在此时,文档中的所有对象都在DOM中,并且图像和子帧已经完成加载。
window.addEventListener("load", function () {
document.getElementById("quantity").addEventListener("keyup", function (evt) {
var target = evt.target;
target.value = target.value.replace(/[^'d]/, "");
if (parseInt(target.value, 10) > 15) {
target.value = target.value.slice(0, target.value.length - 1);
}
}, false);
});
在jsfiddle 上
相关文章:
- 需要将变量设置为特定的数字范围
- 用于验证数字范围的正则表达式
- Javascript/Jquery:使用数字范围验证输入
- 创建使用用户输入的数字范围生成的随机数.(JavaScript)
- 需要Javascript数学表达式或公式来将数字范围放在组中
- Javascript / jQuery - 将一个数字范围映射到另一个数字范围
- 始终在 3K 数字范围内选择不同的数字
- Javascript:在数字范围之间转换,保持正确的比例
- 如何在其他重叠的数字范围之间找到可用的数字范围
- 检查数字范围内没有重复项的数字范围的最有效方法
- 在javascript中选择数字范围的算法
- 输入-限制数字范围
- 6位base36数字范围的正则表达式
- 在数字范围内查找空白
- 纯javascript html 5文本类型数字范围验证
- 正则表达式,用于数字中有空格的数字范围
- HTML表单下拉菜单指定数字范围
- 使用循环javascript的数字范围
- 如何在jquery中使用切换大小写(数字范围)
- 构造正则表达式以匹配数字范围