这个BUG发生的背景有点复杂。大概就是一个Form表单,要用Validation Plugin验证,Ajax提交。结果发现在Webkit浏览器下无论怎样都阻止这个form在提交的时候刷新整个页面。
最后总算抓到元凶是checkbox上的-webkit-appearance:none属性。
-webkit-appearance会将webkit浏览器中的元素默认样式去除。checkbox在这个属性下就直接隐藏掉了。然后用JS获取checkbox值时Webkit浏览器会报很奇怪的错误。给这个元素重新赋上-webkit-appearance:checkbox就不会报错了。
其他的的表单元素以及其他的情况并未测试。这个问题在Chrome和Safari中都会出现,应该是Webkit引擎的问题。
本文探讨了一个复杂的WebKit浏览器BUG,该BUG导致在使用ValidationPlugin验证并提交Form表单时,无论采取何种措施都无法阻止页面刷新。问题最终定位在了checkbox上的-webkit-appearance:none属性,此属性使得Webkit浏览器中的checkbox被隐藏,并在JavaScript操作时引发错误。
700

被折叠的 条评论
为什么被折叠?



