Javascript 试图阻止用户输入非数字或高于特定范围的数字
这是我到目前为止的情况,但问题是如果我输入数字16,它将不再允许我更改文本框中的内容。正在寻求有关如何修复此问题的帮助,谢谢各位Javascript 试图阻止用户输入非数字或高于特定范围的数字,javascript,Javascript,这是我到目前为止的情况,但问题是如果我输入数字16,它将不再允许我更改文本框中的内容。正在寻求有关如何修复此问题的帮助,谢谢各位 <SCRIPT language=Javascript> <!-- function isNumberKey(evt) { var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode
<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>
这是一个可能的解决方案,我已经删除了您的内联事件处理程序,以便为其分配
我也从使用按键改为使用按键
我正在剥离,用一个,任何非数字字符不管,而不是修改来检查什么是按下
我们需要输入元素的值
,如果这个数字大于指定值,我们将去掉最后输入的字符
HTML
在
在一个活动中结束整个事情
注释
加载事件在文档加载过程结束时激发。在
此时,文档中的所有对象都在DOM中,并且
图像和子帧已完成加载
在上,getElementById行后缺少一个分号,该行后的分号也是
?@FranciscoAfonso and bad style可供选择。;)仍然是同样的问题它在JSFIDLE上对我有效,但在我的网页上不起作用。这是完整的网页。有什么想法吗?顺便说一句,真的很感激。这项任务的关键时间到了,你可能需要将你的javascript包装在一个window.onload事件中,非常感谢!现在我要再喝一杯咖啡,这样我可以一直醒着直到早上6点才能完成这件事哈
<p>Enter quantity you would like to purchase :
<input name="quantity" id="quantity" size=15 type="text" value="1" />
</p>
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);
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);
});