it-swarm.com.ru

iOS 8 множественная <select> серьезная ошибка на iPhone?

В iOS 8.0 Apple представила новую ошибку в Safari на iPhone, которая, на мой взгляд, очень серьезна при использовании нескольких элементов <select>. Это обычно используется, например, для выбора дня рождения. Воспроизвести:

  1. Создайте страницу с двумя <select> с несколькими <option> в каждом

  2. Открыть в Safari на iOS 8 на iPhone (ошибка все еще существует в 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/

Эти ошибки не возникают, если вы нажимаете «Готово» между каждым выбором или используете стрелки для переключения.

Есть ли обходной путь для этого?

27
Niclas

Я решил проблему следующим образом:

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

Просто добавил пустой <optgroup> к <select>.

7
rdshck

Я обнаружил еще одну ошибку с полями выбора в iOS8 (например, только на iPhone iPad выглядит нормально).

http://jsbin.com/kuhogopafe/1

Как воспроизвести:

  • Выберите 3 варианта 
  • Отмените выбор одного варианта снова 
  • Результат: вместо 2 Выбранных параметров, только последний невыбранный параметр отображается как Выбранный сейчас
10
Alex

Единственное решение, которое я нашел для iphone Safari, - отключить все остальные поля выбора onfocus и снова включить все onblur. Это заставит пользователя нажать Готово.

0
Andras