我希望将用户输入限制为html表单中的正数。
我知道您可以将min=设置为“0”,但是可以通过手动输入负数来绕过此设置。
有没有其他方法可以在不编写验证函数的情况下解决这个问题?
发布于 2015-07-23 07:48:07
这使用Javascript,但您不必编写自己的验证例程。只需检查validity.valid
属性即可。当且仅当输入落在该范围内时,这才是真的。
<html>
<body>
<form action="#">
<input type="number" name="test" min=0 oninput="validity.valid||(value='');"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
发布于 2016-11-09 15:11:04
如果您想要确保默认值,即最小值,或任何其他值,这是可行的解决方案。这也会阻止清除输入字段。同样,你也可以设置它的最大值。
<input type="number" min="1" max="9999" maxlength="4" oninput="this.value=this.value.slice(0,this.maxLength||1/1);this.value=(this.value < 1) ? (1/1) : this.value;">
发布于 2015-07-23 07:21:08
下面的脚本只允许在输入中输入数字或退格符。
var number = document.getElementById('number');
number.onkeydown = function(e) {
if(!((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCode > 47 && e.keyCode < 58)
|| e.keyCode == 8)) {
return false;
}
}
<input type="number" id="number" min="0">
https://stackoverflow.com/questions/31575496
复制相似问题