Браузер Webkit в Android переходит в поле ввода вместо выполнения события click - PullRequest
0 голосов
/ 27 марта 2019

После целого дня, чтобы выяснить, что здесь происходит, я должен попросить толпу и специалистов по Android помочь мне!Я добавил простой пример для codepen: https://codepen.io/anon/pen/vPqLRy

Когда вы посещаете эту страницу с Android 7 или новее с помощью браузера Webkit, введите текст в поле input[type="text"] и прокрутите вниз до «ОТПРАВИТЬ»кнопка.Убедитесь, что поле ввода не теряет фокус, и вы не закрываете клавиатуру, а просто прокручиваете вниз.Затем нажмите кнопку отправки.Браузер перейдет к полю ввода и не отправит формуляр.

На настольном ПК или на iOS вывод в серой области в конце страницы:

input_text.blur
submit-button.onclick
onsubmit

В Android-7 или новее - Webkit-case вывод:

input_text.blur
*(view jumps to input field)*

При попытке выполнить то же самое с полями input[type="number"] и textarea, есть (вероятно) правильное поведение и формуляр отправляется после нажатия на кнопку отправки.Даже если вы сфокусировались на поле input[type="text"] и не вводили текст, поэтому вы только заставляете клавиатуру быть видимой, формула может быть отправлена.

Другая визуальная «ошибка» заключается в том, что при вводе текста вВ первом поле input[type="text"] прокрутите вниз до поля ввода foo и щелкните, вид переместится вверх к первому полю ввода и сразу же переместится к последнему.

Может кто-нибудь объяснить, какисправить эту "ошибку"?Почему такое поведение существует?Он существует начиная с Android 7. Насколько я исследовал проблему,

О ... еще два вывода:

  • Элемент списка, поле ввода которого должно быть вне поля зрения, чтобы спровоцировать этот переход-behaviour
  • на eBay (https://reg.ebay.de/reg/PartialReg), кажется, есть решение этой проблемы, но я не могу понять, как. Это слишком много недокументированного JavaScript.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...