在iOS 8.0中,Apple在iPhone上的Safari中引入了一个新的错误,我认为在使用多个<select>
元素时非常严重。例如,它通常用于选择出生日期。重现:
创建一个包含两个<select>
且每个<{p>}多个<option>
的页面
在iPhone上的iOS 8上的Safari中打开(该错误仍然存在于8.0.2中)
点按第一个<select>
选择第三个选项,即March
请注意,它不会将<select>
更新为您选择的内容(在iOS 7中更新)
点按第二个<select>
元素
请注意以下事项:
<select>
未更新<select>
显示3(这是第一个<select>
的位置)您可以通过在点击第一个和第二个<select>
之间交替重复此操作,并注意它以相同的模式更改。除非您知道模式,否则这可能是随机出现的)。如果你还有一个年度挑选者,那看起来会更加令人困惑。
要试用您的移动设备,请试试这个jsfiddle: http://jsfiddle.net/m7baw590/6/embedded/result/
此外,onchange="alert(this.value)"
报告的值不正确(与第二个<select>
元素相同。您可以在此处看到:http://jsfiddle.net/m7baw590/7/embedded/result/
如果您在每个选项之间单击“完成”,或使用箭头切换,则不会发生这些错误。
有没有解决方法呢?
答案 0 :(得分:10)
我在iOS8中发现了另一个选择字段的错误(仅限iPhone,iPad似乎很好)。
如何重现:
答案 1 :(得分:7)
我用这种方式解决了问题:
<select>
<option></option>
<option></option>
<option></option>
(...)
<optgroup disabled></optgroup>
</select>
刚刚向<optgroup>
添加了空<select>
。
答案 2 :(得分:0)
我为iphone Safari找到的唯一解决方案是禁用所有其他选择框onfocus并重新启用所有onblur。这将强制用户推送完成。