我正在使用样式化的表单,结合了许多 jQuery 插件来帮助设置表单元素的样式,例如<select>
和<input type="checkbox" />
. 这些插件隐藏了原始表单输入,并用一组可替换的 HTML 元素(<div>
、<a>
、<ul>
等)替换它们。[required]
唯一的问题是,如果用户尝试在未填写必填字段的情况下提交表单,他们似乎没有处理该属性并应用浏览器(Firefox、Chrome)的框阴影效果。有没有一种简单的方法可以让这些[required]
属性转换为替换元素?我只是扩展插件并让它们将[required]
属性复制到替换元素,但我怀疑<div>
标签是否支持[required]
. 我在 Internet 上环顾四周,但没有找到太多有用的指南。有没有我想念的解决方法?我只是想不出该怎么做。
我想我可以使用成熟的客户端验证,但我试图将 jQuery/JavaScript 干预降至最低。如果没有好的方法可以做到这一点,我会去使用表单验证插件或其他东西。现在,为了样式的一致性,我用一些 CSS 禁用了所有的 box-shadow 效果:
input:invalid, input:required,
textarea:invalid, textarea:required,
select:invalid, select:required {
-webkit-box-shadow: none;
-moz-box-shadow: none;
-box-shadow: none;
}