Mobile Safari多选bug

Lau*_*ück 25 html select mobile-safari multi-select ios

如果在当前(iOS 9.2)移动游戏中发现一个非常烦人的错误(自iOS 7以来首次出现!)

如果您在移动野生动物园中使用多选字段 - 如下所示:

<select multiple>
    <option value="test1">Test 1</option>
    <option value="test2">Test 2</option>
    <option value="test3">Test 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

您将遇到自动选择问题!

打开选择后,iOS会自动选择第一个选项(没有任何用户交互) - 但它不会通过蓝色选择"检查"显示给您.

因此,如果您现在选择第二个选项,则选择将告诉您选择了两个选项(但仅突出显示一个选项)...

如果您现在关闭并再次打开选择,iOS将自动取消选择第一个值 - 如果重复,将再次选择它而无需任何用户交互.

这是一个非常烦人的系统错误,它破坏了用户体验!

小智 24

safari多选bug和EmptyDisabled选项勾选相关问题的解决方案:

<select multiple>
<optgroup disabled hidden></optgroup>
<option value="0">All</option>
<option value="1">Test 1</option>
<option value="2">Test 2</option>
<option value="3">Test 3</option>
<option value="4">Test 4</option>
</select>
Run Code Online (Sandbox Code Playgroud)

在实际选项之前添加禁用和隐藏的optgroup.

  • 对我来说仍然是一个问题(iPhone 7,最新版本的iOS 10).屁股多么痛苦. (2认同)

Lau*_*ück 14

经过长时间的研究,我发现以下(不是最美丽)但工作解决方案:

诀窍是在第一个位置添加一个空的和禁用的选择选项:

<select multiple>
    <option disabled></option>

    <option value="test1">Test 1</option>
    <option value="test2">Test 2</option>
    <option value="test3">Test 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)

这将阻止iOS自动选择第一个选项并保持选择值正确并清洁!

空选项不可见,选项计数正确.

  • 在(或包装)选项之前添加<optgroup> </ optgroup>也可以解决问题.这也可以防止点击时出现勾号.空行仍然可见,可能是为optgroup标签属性值保留的. (4认同)
  • 单击列表顶部时仍会显示勾号 (3认同)