Элемент выбора HTML не обновляет свое выбранное значение при сенсорном запуске в iOS? - PullRequest
0 голосов
/ 15 мая 2019

Я вижу несоответствия в сафари iOS с тем, как элементы select обрабатываются между событиями ontouchstart и onmousedown, когда выбранный индекс целевого элемента select обновляется в обработчике событий другого элемента "mouse down", но не обновляется в другом элементеобработчик события «touch start».

Поиграйте с jsbin в мобильном сафари, изменив значение элемента select без нажатия кнопки «Готово», табуляции и т. д., а затем нажав одну из двух кнопок.Вы должны увидеть, что тег выбора вернется к своему первоначальному значению с помощью кнопки «сенсорный запуск», и сохранит новое значение с помощью кнопки «мыши вниз».Обратите внимание, что onchange вызывает кнопку мыши, но не сенсорный запуск.

https://jsbin.com/felufudeke/1/edit?js,output

let selectElement = document.getElementById('select');
let touchStartButton = document.getElementById('touchStart');
let mouseDownButton = document.getElementById('mouseDown');

touchStartButton.ontouchstart = function (e) {
    // on change has not fired yet...
    selectElement.blur();
}

mouseDownButton.onmousedown = function (e) {
    // on change HAS fired if iOS selector value was different
    selectElement.blur();
}

Это преднамеренно и ожидается от браузера?Я лично ожидал, что «сенсорный запуск» и «нажатие мыши» вызовут «изменение» выделенного элемента select, так как я не смог найти никакой документации с подробностями этого поведения.

Есть ли способ в обработчике ontouchstart, чтобы я мог получить текущий "активный" выбор селектора iOS?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...