Если у меня есть элемент input
с типом number
, пытающийся программно вызвать функцию select()
, он не будет работать в Safari mobile.
При запуске этого кода
const el = document.querySelector(`#${FIELD1} input`);
if (el) {
setTimeout(() => {
el.focus();
el.select();
el.setSelectionRange(0, 9999);
}, 100);
}
Фокус будет работать на всех платформах, но выбор будет работать только в Chrome.
Есть ли официальная информация об этой ошибке? Есть ли способ обойти это?
Я попробовал el.setSelectionRange(0,99)
, как предлагалось в старых сообщениях, но, похоже, он больше не работает (и не должен, поскольку это не указано в спецификации W3C для этого элемента).
PS: Я использую Preact.
РЕДАКТИРОВАТЬ: проблема сосредоточена на iOS, на самом деле она работает на рабочем столе Safari.
Я создал минимальное воспроизведение: https://codesandbox.io/s/q86m6kv01q, пожалуйста, попробуйте перейти на вашем устройстве к: https://q86m6kv01q.codesandbox.io/