iOS 8上有多个<select>严重错误的iPhone?</select>

时间:2014-09-30 09:29:05

标签: ios iphone safari ios8 html-select

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

  1. 创建一个包含两个<select>且每个<{p>}多个<option>的页面

  2. 在iPhone上的iOS 8上的Safari中打开(该错误仍然存​​在于8.0.2中)

  3. 点按第一个<select>

  4. 选择第三个选项,即March

  5. 请注意,它不会将<select>更新为您选择的内容(在iOS 7中更新)

  6. 点按第二个<select>元素

  7. 请注意以下事项:

    • 第一个<select>未更新
    • 第二个<select>显示3(这是第一个<select>的位置)
    • 下面的选择器显示1
  8. 您可以通过在点击第一个和第二个<select>之间交替重复此操作,并注意它以相同的模式更改。除非您知道模式,否则这可能是随机出现的)。如果你还有一个年度挑选者,那看起来会更加令人困惑。

    要试用您的移动设备,请试试这个jsfiddle: http://jsfiddle.net/m7baw590/6/embedded/result/

    此外,onchange="alert(this.value)"报告的值不正确(与第二个<select>元素相同。您可以在此处看到:http://jsfiddle.net/m7baw590/7/embedded/result/

    如果您在每个选项之间单击“完成”,或使用箭头切换,则不会发生这些错误。

    有没有解决方法呢?

3 个答案:

答案 0 :(得分:10)

我在iOS8中发现了另一个选择字段的错误(仅限iPhone,iPad似乎很好)。

http://jsbin.com/kuhogopafe/1

如何重现:

  • 选择3个选项
  • 再次取消选择一个选项
  • 结果:而不是2 选定的选项,仅报告最后一个未选择的选项 现在选择

答案 1 :(得分:7)

我用这种方式解决了问题:

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

刚刚向<optgroup>添加了空<select>

答案 2 :(得分:0)

我为iphone Safari找到的唯一解决方案是禁用所有其他选择框onfocus并重新启用所有onblur。这将强制用户推送完成。