我试着在模糊上做一个简单的数字输入域的checkValidity,但是不能正常工作。这在Chrome上还能用吗?例如:
<input onBlur="checkValidity()" type="number" name="x" id="x" min="64" max="2048" value=64>
或
<input onBlur="this.checkValidity()" type="number" name="x" id="x" min="64" max="2048" value=64>
看起来什么都不做。但是,在控制台中,
$("#x")[0].checkValidity()
根据输入框中的当前值和(64,2048)以上的限制返回true或false。这是坏了吗,还是我做错了?
发布于 2013-01-16 12:28:41
您应该使用onChange事件
例如
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' : '');
}
发布于 2018-06-23 03:26:24
这是一个解决方案
$("form").focusout(function(){
if(!$("form")[0].checkValidity()){
setTimeout(function(){$(":submit").eq(0).trigger('click');},0);
}
});
如果您的任何表单元素失去焦点,您将检查表单的有效性。如果表单无效,让jquery单击第一个submit按钮。出于某种原因,必须使用超时才能使其正常工作。超时时间为零只会将函数移动到函数队列的末尾。
发布于 2013-01-17 14:49:30
由于blur
事件不可取消,因此onblur="checkValidity()"
无效。
https://stackoverflow.com/questions/14351260
复制相似问题