如何覆盖HTML5表单上必填字段的默认弹出窗口?
示例:http://jsfiddle.net/uKZGp/(确保单击提交按钮以查看弹出窗口)
HTML
<form>
<input type="text" name="name" id="name" placeholder="Name*" required="required" />
<input type="submit" />
</form>
注意:您必须使用HTML5浏览器,如Google Chrome或FireFox。
这个链接并不能解决我的问题,但它可能会让人跳出框框思考:
6条答案
按热度按时间lstz6jyr1#
只使用HTML/CSS是不可能改变验证样式的。
它是浏览器的一部分。我发现唯一需要更改的属性是错误消息,使用以下示例:
但是,如该示例所示:http://jsfiddle.net/trixta/qTV3g/,您可以使用jQuery覆盖面板样式。这不是一个插件,它是一个核心功能,使用一个名为Webshims的DOM库,当然,还有一些CSS来设计弹出窗口。
我在这个名为
Improve form validation error panel UI
的bug post中发现了一个非常有用的例子。我认为这是你能找到的最好的解决方案,也是覆盖基本(丑陋)错误面板的唯一方法。
ct2axkht2#
我不知道为什么,但
::-webkit-validation-bubble-message { display: none; }
对我不起作用。我能够通过阻止无效事件的默认行为获得所需的结果(在FF 19,Chrome版本29.0.1547.76 m中测试),该事件不会冒泡。qfe3c7zg3#
对于webkit,您可以使用
::-webkit-validation-bubble-message
。例如,隐藏它:还有:
**更新:**Chrome不再允许样式化表单验证气泡:https://code.google.com/p/chromium/issues/detail?id=259050
对于firefox,你可以尝试
:-moz-placeholder {}
。omjgkv6w4#
当前默认的电子邮件验证是目前我见过的谷歌设计中最丑的东西之一!
然而,它似乎包含在一个标准的
div
中,所以你可以对它进行一些更改,如果你记得然后重置这些值。我发现你可以改变背景,字体大小和颜色,边框和阴影,像这样
如果您随后在html标记内覆盖这些div,那么最终只会影响验证。
不幸的是,您想要更改的一些关键属性,例如
margin
和font-weight
,无法更改。注意:此技术目前仅适用于Chrome(12),即不适用于Firefox 4、Opera 11或Safari(Win 7)。
2admgd595#
向输入类型追加了一个类。并在那里显示消息。希望在少量定制后有所帮助。工作代码:
9avjhtql6#
我知道这是一个相当老的问题,但我已经找到了这个库,我认为这可能是有益的其他发现这一点。
http://afarkas.github.io/webshim/demos/index.html