首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否在表单输入数字“type=”中阻止负输入?

是否在表单输入数字“type=”中阻止负输入?
EN

Stack Overflow用户
提问于 2015-07-23 07:03:47
回答 5查看 112.6K关注 0票数 52

我希望将用户输入限制为html表单中的正数。

我知道您可以将min=设置为“0”,但是可以通过手动输入负数来绕过此设置。

有没有其他方法可以在不编写验证函数的情况下解决这个问题?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-07-23 07:48:07

这使用Javascript,但您不必编写自己的验证例程。只需检查validity.valid属性即可。当且仅当输入落在该范围内时,这才是真的。

代码语言:javascript
复制
<html>
<body>
<form action="#">
  <input type="number" name="test" min=0 oninput="validity.valid||(value='');"><br>
  <input type="submit" value="Submit">
</form>
</body>
</html>

票数 122
EN

Stack Overflow用户

发布于 2016-11-09 15:11:04

如果您想要确保默认值,即最小值,或任何其他值,这是可行的解决方案。这也会阻止清除输入字段。同样,你也可以设置它的最大值。

代码语言:javascript
复制
<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;">

票数 6
EN

Stack Overflow用户

发布于 2015-07-23 07:21:08

下面的脚本只允许在输入中输入数字或退格符。

代码语言:javascript
复制
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;
    }
}
代码语言:javascript
复制
<input type="number" id="number" min="0">

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31575496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档