如何检查浏览器是否具有内置的HTML5表单验证能力?这样,我们就不需要在可以自己验证表单的浏览器上应用jQuery表单验证函数。
基于ThinkingStiff的答案,这里有一种方法:
if (typeof document.createElement("input").checkValidity == "function") {
alert("Your browser has built-in form validation!");
}
发布于 2011-12-18 17:48:54
只需检查checkValidity()
函数是否存在:
演示:http://jsfiddle.net/ThinkingStiff/cmSJw/
function hasFormValidation() {
return (typeof document.createElement( 'input' ).checkValidity == 'function');
};
这样叫它:
if( hasFormValidation() ) {
//HTML5 Form Validation supported
};
发布于 2013-11-05 03:57:47
怎么样
function hasFormValidation() {
return 'noValidate' in document.createElement('form');
}
发布于 2014-07-15 17:28:02
像Android one (4.4之前的版本)这样的导航器有一个问题,它实现了checkValidity
(这个函数实际上会检查输入),但是如果一些输入是无效的,浏览器不会向用户提供任何信息(并发送表单)。
但是,您可以使用validationMessage
检查是否有任何问题。此属性显示浏览器将向用户显示的错误消息。如果checkValidity()
为false但没有validationMessage
,则浏览器不支持完整的html5表单验证。
我做了这个函数。它要求表单中的所有字段都作为参数:
canValidateFields() {
var result = typeof document.createElement( 'input' ).checkValidity == 'function';
if (result) {
for (var i = 0; i < arguments.length; i++) {
var element = document.getElementById(arguments[i]);
if (!element.checkValidity() && (!element.validationMessage || element.validationMessage === null || element.validationMessage === '')) {
return false;
}
}
}
return result;
}
https://stackoverflow.com/questions/8550642
复制相似问题