这是工作示例:http://jsfiddle.net/trustweb/sTSMW/
我发现使用 Safari 5.05 时出现错误
如果我在 html5 页面中设置一个表单,并且如果 Modernizr 测试失败,我用 jquery 替换该功能:
Modernizr.inputtypes.email && Modernizr.input.required && Modernizr.input.placeholder
使用其他浏览器(firefox、chrome 和 opera)浏览器验证表单
在ie中jquery替换验证函数
在 safari 中它不起作用,modernizr 在测试 html5 兼容性时似乎返回 true:
yepnope(
{
test : Modernizr.inputtypes.email && Modernizr.input.required && Modernizr.input.placeholder,
nope : 'http://www.trustweb.it/webforms_home.js'
});
Modernizr 之所以说 Safari 5 支持 email/required 属性,是因为它们受支持并且您可以使用约束验证 API(即 input.checkValidity()、input.validity 等)。 Safari 5.0.x 没有验证 UI,这就是他们关闭所谓的交互式表单验证的原因(= 如果验证失败,则阻止提交并显示错误消息)。
事实上,你的浏览器嗅探是不正确的。 Chrome 已经支持 HTML5 表单验证,Safari 6 也将支持。这表示未来可能的更多证明将如下所示:
yepnope(
{
test : Modernizr.inputtypes.email && Modernizr.input.required && Modernizr.input.placeholder && ( !$.browser.webkit || parseInt($.browser.version, 10) > 533),
nope : 'javascript/webforms_home.js'
});
你可以找到一些额外的此处有关表单验证的测试.
Update:Modernizr 现在有一个附加功能检测交互式约束验证
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)