首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML5 Chrome checkValidity onBlur

HTML5 Chrome checkValidity onBlur
EN

Stack Overflow用户
提问于 2013-01-16 12:13:33
回答 5查看 10.6K关注 0票数 9

我试着在模糊上做一个简单的数字输入域的checkValidity,但是不能正常工作。这在Chrome上还能用吗?例如:

代码语言:javascript
复制
<input onBlur="checkValidity()" type="number" name="x" id="x" min="64" max="2048" value=64>

代码语言:javascript
复制
<input onBlur="this.checkValidity()" type="number" name="x" id="x" min="64" max="2048" value=64>

看起来什么都不做。但是,在控制台中,

代码语言:javascript
复制
$("#x")[0].checkValidity() 

根据输入框中的当前值和(64,2048)以上的限制返回true或false。这是坏了吗,还是我做错了?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-17 11:15:28

这是您可能想要了解的内容的演示:

http://jsfiddle.net/9gSZS/

代码语言:javascript
复制
<input type="number" min="64" max="256" onblur="validate(this);" />
代码语言:javascript
复制
function validate(obj)
{
  if(!obj.checkValidity())
  {
    alert("You have invalid input. Correct it!");
    obj.focus();
  }
}

注意到我只是在这里演示这个概念;alert可能会引起非常不愉快的体验,所以不要照搬它。

使用一些浮动的alert来吸引你的用户,而不是完全屏蔽的DIV。

票数 6
EN

Stack Overflow用户

发布于 2020-10-31 14:04:27

我意识到这个问题在这一点上已经有很多年了,但是如果其他人遇到这个问题,实现OP想要的行为的正确方法似乎是使用onblur="reportValidity()"而不是onblur="checkValidity"

票数 5
EN

Stack Overflow用户

发布于 2013-01-16 12:28:41

您应该使用onChange事件

例如

代码语言:javascript
复制
var input1 = document.getElementById('txt_username');
    input1.onchange = function(){
        input1.setCustomValidity(input1.validity.patternMismatch ? 'username must match a-z,A-Z,0-9,4-16 character' : ''); 
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14351260

复制
相关文章

相似问题

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