Safari行为依赖于“检查元素”已完成?

时间:2013-08-09 00:11:31

标签: jquery forms safari

Mac Safari(以及iPad Safari)的一个可怕奇怪的问题 -

我正在整理一个表单,允许用户指定文件输入或文本字符串,但不能同时指定两者。因此,有一个与每个输入相关的单选按钮;表单元素开始禁用,并且,当单击其中一个单选按钮时,会运行一些jQuery并调整禁用状态以让用户选择文件或输入一些文本。这在Mac Chrome,Firefox和Opera中都能正常工作,甚至可以说是IE 9。

在Safari中没有这样的运气:

  • 如果我点击应该启用文件字段的单选按钮,虽然console.log()表明已删除disabled属性,但似乎没有任何事情发生。

  • 如果我点击应启用文本字段的单选按钮,则没有任何反应,但文件字段小部件(“选择...”按钮)平展消失。

  • 更多在两个单选按钮之间来回点击不会做任何事情。

HOWEVER ,如果在点击任何内容之前,我在表单区域执行“检查元素”,一切正常。此外,如果我首先点击链接字段的单选按钮,这样文件字段就会消失,然后执行“检查元素”,表单会重新绘制,显示按钮和字段的正确视图,一切正常。

GAK。这背后有一大堆代码,所以我可能会或者可能无法将它变成一个小提琴。但我目前的信念是,我已经以某种方式挖掘了一些非常模糊的Safari漏洞,并且必须采取措施来挖掘我的出路。我想我在这里寻找同情或其他什么,并看看过去是否还有其他人偶然发现了类似的东西。任何接受者? :)

1 个答案:

答案 0 :(得分:1)

我有一个奇怪的Safari错误,类似于此一段时间。

在我的情况下,解决方案是使用jQuery触发元素上的某些东西 - 这可能会让它重点/导致它重绘。在我的情况下如下:

jQuery(el).css("border", "none");

做了这个伎俩。

元素首先没有边框,只是导致元素被浏览器重绘/填充。