0

Mac Safari(和 iPad Safari,就此而言)的一个非常奇怪的问题——

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

在 Safari 中没有这样的运气:

  • 如果我单击应该启用文件字段的单选按钮,似乎什么都没有发生,尽管 console.log() 表明 disabled 属性已被删除。

  • 如果我单击应该启用文本字段的单选按钮,它不会发生任何事情,但是 FILE FIELD 小部件(“选择...”按钮)完全消失了。

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

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

嘎。这背后有一大堆代码,所以我可能会也可能不会把它变成小提琴。但我目前的信念是,我以某种方式钻入了一些非常不起眼的 Safari 错误,并且必须做一些事情来钻出我的出路。我想我在这里发帖是为了寻求同情或什么,看看过去是否有其他人偶然发现了类似的事情。有接盘侠吗?:)

4

1 回答 1

1

不久前,我遇到了一个类似于此的奇怪 Safari 错误。

在我的情况下,解决方案是使用 jQuery 触发元素上的一些事情——这可能会给它带来焦点/导致它重绘。在我的情况下:

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

成功了。

该元素首先没有边框,它只是导致元素被浏览器重绘/摆弄。

于 2013-08-09T18:34:33.057 回答