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