2014-09-30 70 views
27

在iOS 8.0中,Apple在iPhone上引入了Safari中的一个新bug,我认为使用多个<select>元素时非常严重。它通常用于例如选择出生日期。要重现:iOS 8多重<select> iPhone上的严重错误?

  1. 两个<select><option>每个

  2. 在iOS 8在iPhone上打开Safari浏览器中创建一个页面(这个错误仍然存​​在于8.0.2)

  3. 点击第一<select>

  4. 选择第三个选项,即

  5. 注意,它不更新<select>你选择什么(它在iOS的7)

  6. 点击第二<select>元素

  7. 注意以下几点:

    • 第一<select>不更新
    • 第二个<select>显示3(这是第一个的位置<select>
    • 下面的拾取器显示1

您可以通过点击在第一和第二<select>之间交替重复此,并注意其在相同的模式改变。这可能会随机出现,除非你知道该模式)。如果你也有一年挑选者,那看起来更加令人困惑。

要尝试在移动设备上,试试这个的jsfiddle: http://jsfiddle.net/m7baw590/6/embedded/result/

此外,onchange="alert(this.value)"报告不正确的值(即第二<select>元素上选择了相同的您可以在此看到这里:http://jsfiddle.net/m7baw590/7/embedded/result/

如果您单击“完成”每个选择之间,或使用箭头切换

这些错误不会发生。

对此有什么解决办法?

+0

我把这个bug报告提交给苹果公司,问题18701881,并得到了一个答复,它是18484444的副本。根据这个数字,它似乎是不久前。如果任何人有解决方法,直到他们解决它,我想知道。 – Niclas 2014-11-04 07:38:34

+0

可能的重复:http://stackoverflow.com/questions/20039194/multiple-select-in-safari-ios-7 – 2015-06-17 04:26:47

+2

仍然没有在iOS 9中修复。 – Niclas 2015-10-16 11:23:51

回答

7

我解决了这个问题是这样的:

<select> 
    <option></option> 
    <option></option> 
    <option></option> 
    (...) 
    <optgroup disabled></optgroup> 
</select> 

只需添加一个空<optgroup><select>

+0

令人印象深刻!这工作!这似乎是一个奇怪的黑客,但。这是一个在iPhone中工作的小提琴:) http://jsfiddle.net/m7baw590/12/embedded/result/ – Niclas 2016-02-01 12:06:33

+0

这可行,但现在界面选择选项看起来有点不同,左对齐而不是居中。 – Hans 2016-02-16 13:12:12

+0

控件现在不加载 – Shiva 2017-01-26 10:32:08

10

我发现了iOS8中的选择字段的另一个错误(仅在iPhone上,iPad看起来很好)。

http://jsbin.com/kuhogopafe/1

如何重现:

  • 选择3个选项
  • 取消选择再一个选项
  • 结果:不是2个 选择的选项,只有最后一个未选择的选项被报告为 现在选
+0

我可以确认这个错误。我想这是由于苹果的类似错误代码。希望他们尽快修复。 – Niclas 2014-11-04 07:37:16

+1

我在iPhone 5上遇到与iOS 8.1.1相同的问题 – 2014-12-11 13:25:40

+3

在iPhone 5上的iOS 8.1.3上遇到同样的问题。 – 2015-02-02 18:00:44

0

我发现iPhone Safari的唯一解决方案是关闭所有其他选择框并重新启用所有onblur。这将强制用户推送完成。