HTML5 Chrome checkValidity onBlur

rep*_*cus 6 javascript validation html5 google-chrome

我正在尝试对模糊的数字输入字段执行简单的checkValidity,但无法使其正常工作.这在Chrome中有效吗?例如:

<input onBlur="checkValidity()" type="number" name="x" id="x" min="64" max="2048" value=64>
Run Code Online (Sandbox Code Playgroud)

要么

<input onBlur="this.checkValidity()" type="number" name="x" id="x" min="64" max="2048" value=64>
Run Code Online (Sandbox Code Playgroud)

好像什么也没做.但是,在控制台中,

$("#x")[0].checkValidity() 
Run Code Online (Sandbox Code Playgroud)

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

Pas*_*rby 5

这是您可能希望前往的内容的演示:

http://jsfiddle.net/9gSZS/

<input type="number" min="64" max="256" onblur="validate(this);" />
Run Code Online (Sandbox Code Playgroud)
function validate(obj)
{
  if(!obj.checkValidity())
  {
    alert("You have invalid input. Correct it!");
    obj.focus();
  }
}
Run Code Online (Sandbox Code Playgroud)

注意到我只是在这里展示这个概念 ; alert可能会导致非常不愉快的经历,所以不要只是复制它.

使用一些浮动DIV来吸引您的用户,而不是完全阻止alert.


Dea*_*tle 5

我意识到这个问题是很多岁在这一点上,但如果其他人遇到它,正确的方法来实现这一OP希望似乎是用行为onblur="reportValidity()"来代替onblur="checkValidity"