У меня есть динамическая форма, которая должна отображаться с помощью iPad.
Эта форма имеет пару переключателей, несколько текстовых полей и одну кнопку отправки.
В iPad кнопка GO на виртуальной клавиатуре должна действовать как клавиша ввода, вызывая нажатие первой кнопки отправки в форме и отправку формы.
Чтобы избежать чрезмерных непроизвольных сообщений до того, как форма будет заполнена, мы добавили дополнительную кнопку отправки выше в форме, абсолютно расположенную за пределами видимой области с помощью onclick="return false;". Это перехватывает нажатие клавиши ввода, предотвращая случайную публикацию во всех браузерах, кроме Safari Mobile.
На iPad мы даже протестировали мобильную версию Opera, и она работает так, как ожидалось.
Но Safari Mobile, по-видимому, игнорирует возврат false, так как событие нажатия кнопки вызывает сообщение, которое не делает ни один другой браузер, даже Safari на ПК.
Мои вопросы:
1: Почему Safari Mobile игнорирует «return false» при отправке, есть ли здесь другой механизм?
2: Как запретить Safari Mobile публиковать форму при нажатии кнопки GO?
Я выполнил многочисленные поиски в Google и Stackoverflow и нашел много примеров, но все они требуют большого количества javascript и привязки событий, а динамический характер формы вместе с пользовательским содержимым делает эту ошибку подверженной ошибкам и довольно сложной, поскольку почти все обязательные привязки события для каждого текстового поля и текстовой области.
Любое работающее решение хорошо, но чем оно проще, тем лучше, особенно если оно не требует особой настройки формы или событий, которые могут конфликтовать с событиями автозаполнения или проверки.
Пример тестовой страницы: http://lab.dnet.nu/ipad.php