【发布时间】:2011-10-07 09:01:40
【问题描述】:
我遇到了一个奇怪的问题。我不确定我是否搞砸了,或者这甚至可能是 webkit 中的一个错误。
我正在做的是使用一些或多或少复杂的 CSS 技巧(:after 和 content、兄弟选择器等)和自定义数据属性来指示表单的输入字段是否有效。
我在每个输入字段上都有一个数据属性“data-valid”以及一个包含正则表达式的属性“data-validate”。在 keyup 上,我针对输入的值运行正则表达式并相应地设置 data-valid。
然后我在输入旁边有一个小 div,它使用数据有效的敏感属性选择器设置样式。如果兄弟的 input data-valid 属性为 true,则背景将显示一个 ok 符号,如果设置为 false,则将显示一个失败符号。
因为这个可能比较难理解,所以我把这个jsfiddle拼接在一起,大家可以自己看。
所有这些都在 Firefox 6 和 IE9 中运行良好。但是,在这两种基于 Webkit 的浏览器(Chrome + Safari)中,这不会 100% 正确工作。尽管 data-valid 属性正确更改,但样式化的 div 不会改变它的外观,直到我输入其他字符或取消聚焦输入字段。看起来 Webkit 浏览器几乎无法重新绘制/重新设置特定 div 的样式。
我真的不知道发生了什么,我相当有信心,这应该按我的预期工作。我希望有人能提出一些见解甚至解释,也许是一个修复/解决方法。
非常感谢!
【问题讨论】:
标签: javascript jquery css dom webkit