Как запретить кнопке Go на iPad/iPhone публиковать форму

У меня есть динамическая форма, которая должна отображаться с помощью 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

21
задан David Mårtensson 8 March 2012 в 09:53
поделиться