После целого дня, чтобы выяснить, что здесь происходит, я должен попросить толпу и специалистов по 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.