火狐4:有没有办法删除所需的formsinput的红色边框?
当需要在表单字段中定义时,Firefox 4会自动向该元素显示红色边框,甚至在用户点击提交button之前。
<input type="text" name="example" value="This is an example" required />
我觉得这对于用户来说是一件令人不安的事情,因为他们一开始并没有犯错误。
我想在初始状态下隐藏红色的边框,但是当用户点击发送button时,如果缺less标记为必填的字段,则会显示该边框。
我看着:required
和:invalid
新的伪select器:invalid
,但更改是在validation之前和之后 。 (来自Firefox 4需要的inputforms红色边框/大纲 )
有没有办法在用户提交表单之前禁用红色边框,并显示是否有一些缺失的字段?
这是一个有点棘手,但我已经build立了这个exmaple: http : //jsfiddle.net/c5aTe/这是为我工作。 基本上这个伎俩似乎越来越有占位符文本是无效的。 否则,你应该能够做到这一点:
input:required { box-shadow:none; } input:invalid { box-shadow:0 0 3px red; }
或类似的东西…
但由于FF4决定validation您的占位符文本(不知道为什么…)在小提琴(小哈克 – 使用!important
)的解决scheme是必需的。
希望有所帮助!
编辑
卫生署! – 我感觉好傻。 我已经更新了我的小提琴: http : //jsfiddle.net/c5aTe/2/ – 您可以使用:focus
伪类,以保持元素样式,如果用户正在键入有效。 当项目失去焦点时,如果内容无效,这仍然会以红色突出显示,但是我认为只有这么多的devise行为才能做到。
HTH 🙂
接受后编辑:
OP请求的例子总结(请注意,前两个仅适用于FF4 – 不是Chrome )
- 修复FFvalidation您的占位符文本: http : //jsfiddle.net/c5aTe/
- 修正FFvalidation,你键入: http : //jsfiddle.net/c5aTe/2
- JS解决scheme切换风格/validation: http : //jsfiddle.net/c5aTe/4
从Firefox 26开始,用于标识无效的必需字段的实际CSS如下所示(来自forms.css):
:not(output):-moz-ui-invalid { box-shadow: 0 0 1.5px 1px red; }
要在其他浏览器中复制,我使用:
input:invalid { box-shadow: 0 0 1.5px 1px red; }
我玩的像素设置,但我永远不会猜测的1.5像素没有看moz源。
要禁用它,你可以使用:
input:invalid { box-shadow: none; }
这是一个非常简单的解决scheme,为我工作。 我基本上把丑陋的红色变成了非常漂亮的蓝色,这是非必填字段的标准颜色,还有一个网页公约:
:required { border-color: rgba(82, 168, 236, 0.8); }
这对我很好:
input:invalid { -moz-box-shadow: none; }
请试试这个,
$( “forms”)ATTR( “NOVALIDATE”,真)。
在您的全球.js文件或标题部分的表单。