【问题标题】:Workaround for bug with 0th <select> option in Mobile Safari on iPad?iPad 上移动 Safari 中第 0 个 <select> 选项的错误的解决方法?
【发布时间】:2011-10-23 08:56:15
【问题描述】:

在 iPad 上的 Mobile Safari 中,似乎如果在 &lt;select&gt; 元素上没有选择选项,那么用户在选择另一个选项之前无法选择第 0 个选项(在 iPad 上的 http://jsfiddle.net/PJTKq/ 上尝试) .

更具体一点:

  1. 创建具有两个或更多选项的&lt;select&gt; 元素。
  2. 通过以编程方式设置selectedIndex = -1 或从所有&lt;option&gt; 元素中删除"selected" 属性来清除它。
  3. 点击选择元素并选择第 0 个选项。选定的索引不会改变。
  4. 点击选择元素并选择另一个选项,然后再次点击它并选择第 0 个选项。所选索引应更改两次。

有谁知道允许直接从selectedIndex -1 移动到selectedIndex 0 的解决方法(除了插入一个空的虚拟选项)?

【问题讨论】:

  • @Detect,你是对的。这似乎是 iPad 独有的错误。
  • 这似乎已在 iOS 5 中修复(至少在 iPad 3 上)。
  • 我在装有 iOS 11.2.6 的 iPhone 7 Plus 上看到了同样的问题。现在在 iPad 上运行良好。当我将 ngModel 添加到选择(使用现代角度)并且基础值为空并且选择没有选择初始值时,就会发生这种情况。当 Select 被聚焦时,iPhone 的滚轮在底部出现,认为第一个选项已经被选中,因此用户必须滚动该值并返回它才能被选中。我还没有找到好的解决方法。

标签: javascript html ios ipad mobile-safari


【解决方案1】:
<script>    
// with jQuery
var iPad = !!navigator.userAgent.match(/iPad/i),
    select = "select";

if(iPad === true) {  
    $(select).prop("selectedIndex", 0);
}
</script>

【讨论】:

    【解决方案2】:

    在修复错误之前,也许您可​​以检测到用户代理并将 selectedIndex=0 设为 Mobile Safari 的默认值。

    【讨论】:

      猜你喜欢
      • 2020-02-26
      • 2020-10-16
      • 1970-01-01
      • 1970-01-01
      • 2016-04-12
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      相关资源
      最近更新 更多