首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查浏览器是否具有内置的HTML5表单验证?

检查浏览器是否具有内置的HTML5表单验证?
EN

Stack Overflow用户
提问于 2011-12-18 16:35:59
回答 3查看 13.6K关注 0票数 24

如何检查浏览器是否具有内置的HTML5表单验证能力?这样,我们就不需要在可以自己验证表单的浏览器上应用jQuery表单验证函数。

基于ThinkingStiff的答案,这里有一种方法:

if (typeof document.createElement("input").checkValidity == "function") {
    alert("Your browser has built-in form validation!");
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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
};
票数 27
EN

Stack Overflow用户

发布于 2013-11-05 03:57:47

怎么样

function hasFormValidation() {
  return 'noValidate' in document.createElement('form');
}

来源:http://diveintohtml5.info/everything.html#novalidate

票数 6
EN

Stack Overflow用户

发布于 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;
}

示例:http://jsfiddle.net/pmnanez/ERf9t/2/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8550642

复制
相关文章

相似问题

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