检测是否强制执行HTML5“required”属性

检测是否强制执行HTML5“required”属性,html,forms,Html,Forms,是否有一种简单的方法可以测试HTML5required属性在提交表单时是否由浏览器强制执行?i、 e.如果未填写必填字段,则无法提交表格 我不希望仅仅为此添加Modernizer,也不适用于Safari:Safari不会阻止表单提交,当表单提交为必填字段时,仍然document.createElement('input')。在Safari中,必填的不是未定义的 我想实现一个类似的解决方案,但仅对不强制执行required属性的浏览器启用它。检查checkValidity()函数是否存在: fun

是否有一种简单的方法可以测试HTML5
required
属性在提交表单时是否由浏览器强制执行?i、 e.如果未填写必填字段,则无法提交表格

我不希望仅仅为此添加Modernizer,也不适用于Safari:Safari不会阻止表单提交,当表单提交为必填字段时,仍然
document.createElement('input')。在Safari中,必填的
不是
未定义的

我想实现一个类似的解决方案,但仅对不强制执行
required
属性的浏览器启用它。

检查checkValidity()函数是否存在:

function hasFormValidation() {

    return (typeof document.createElement( 'input' ).checkValidity == 'function');

};
可以这样称呼:

if( hasFormValidation() ) {
    // Form Validation supported
};

来自HTML标准的完成参考:。很好的解决方案。对于Safari,它返回true,即使在缺少必需字段时Safari不会阻止表单提交。最后,我们不得不使用浏览器检测而不是功能检测