Подтвердить что ты не робот

IOS 8 несколько <select> серьезная ошибка на iPhone?

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

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

  • Открыть в Safari на iOS 8 на iPhone (ошибка все еще существует в 8.0.2)

  • Нажмите первый <select>

  • Выберите третий вариант, т.е. March

  • Обратите внимание, что он не обновляет <select> до того, что вы выбрали (он работает в iOS 7)

  • Нажмите второй элемент <select>

  • Обратите внимание на следующее:

    • Первый <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/

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

Есть ли какое-либо обходное решение для этого?

4b9b3361

Ответ 1

Я решил проблему таким образом:

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

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

Ответ 2

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

http://jsbin.com/kuhogopafe/1

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

  • Выберите 3 варианта
  • Отменить выбор еще раз.
  • Результат: вместо 2 выбранные параметры, только последняя невыбранная опция сообщается как выбранный сейчас

Ответ 3

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