是否可以根据我为其设置的模式检查 html5 表单的输入元素是否有效?我知道伪类的东西..但我希望像这样:
document.getElementById('petitionName').valid
可以返回true
或false
..
我真的希望我不需要创建 javascript 来重新验证这些东西。
是否可以根据我为其设置的模式检查 html5 表单的输入元素是否有效?我知道伪类的东西..但我希望像这样:
document.getElementById('petitionName').valid
可以返回true
或false
..
我真的希望我不需要创建 javascript 来重新验证这些东西。
有两种方法可以检查有效性。
inputElement.checkValidity()
返回true
或false
inputElement.validity
返回有效性状态对象。inputElement.validity.valid
回报true/false
除了使用 keyup,您还可以使用 'input' 事件。所有实现了约束验证 API 的浏览器也都实现了输入事件。
如果您使用上面的选项 1,Opera 在这里有一个错误,将显示其验证提示。所以你应该使用2。
我创建了一个 html5 表单库,它为无法运行的浏览器实现了所有未知的功能 + 修复了 HTML5 浏览器中的问题。所以一切都像规范中定义的那样工作,但它建立在 jQuery 之上。(http://afarkas.github.com/webshim/demos/index.html)。
作为补充,您可以检查每个元素是否无效,例如,通过以下代码在第一个无效元素中设置焦点:
var Form = document.getElementById('FormID');
if (Form.checkValidity() == false) {
var list = Form.querySelectorAll(':invalid');
for (var item of list) {
item.focus();
}
}