Получение iPhone GO кнопки для отправки формы - PullRequest
37 голосов
/ 14 апреля 2011

Кто-нибудь знает, какие переменные входят в форму, чтобы кнопка GO виртуальной клавиатуры iPhone передавала форму, а не нет?

Я пытался сузить сценарии, и вот что я нашел:

  • , если в FORM есть только одно поле ввода пользователя, кнопка go автоматически отправляет форму

  • , если в FORM имеется более одного поля ввода пользователя, но нет INPUT TYPE = "SUBMIT", то кнопка GO не отправляет форму.

  • , если в FORM имеется более одного поля ввода пользователя И ТИП ВХОДА = "ОТПРАВИТЬ", то кнопка перехода отправляет форму.

Однако это не совсем точно, так как мы сталкиваемся с ситуацией, когда третий не работает для нас.

Кто-нибудь знает о других факторах, влияющих на то, что кнопка GO работает или не работает?

Ответы [ 7 ]

50 голосов
/ 15 апреля 2011

Итак, вот наш конкретный вопрос:

У нас была форма с несколькими пользовательскими полями ввода, но не истинная <input type="submit"> (она была отправлена ​​через JS).

Таким образом, кнопка GO ничего не сделала.

Затем мы добавили <input type="submit"> и установили его на display: none, надеясь, что это поможет. Нету. Не сработало.

По прихоти мы изменили отображение: ни одного на margin-left: -1000px

Это сработало!

По-видимому, Safari ищет наличие кнопки SUBMIT в форме, и только если она не отображается: нет, она запускается при нажатии кнопки GO.

21 голосов
/ 01 июля 2012

Если имеется более одного ввода и вы хотите скрыть отправку, лучше всего подойдет:

<input type="submit" style="visibility:hidden;position:absolute"/>
4 голосов
/ 25 октября 2017

Вы также можете привязать слушателя нажатия клавиши к элементу или форме. Кнопка «Перейти» на iphone аналогична кнопке ввода на компьютере, символ 13.

$('someElem').bind("keypress", function(e){
    // 'Go' key code is 13
    if (e.which === 13) {
       console.log("user pressed Go");
       // submit your form with explicit JS.
    } 
 });
2 голосов
/ 13 мая 2015

Я не мог понять, почему очень простая форма карт Google не отправлялась с помощью кнопки iPhone Go.

Оказывается, после удаления он не работает с target="_blank" в теге формы.

Убрал это, и теперь кнопка Go работает на iPhone.

Вот JSFiddle , чтобы попробовать

1 голос
/ 25 апреля 2015

Код, указанный другими, верен.Если вы используете jQuery Mobile, добавьте

data-role="none" 

к элементу ввода отправкиВот так:

<input type="submit" data-role="none" style="visibility: hidden; position: absolute;" />
0 голосов
/ 21 марта 2015

Вот стиль кнопки отправки, который работал для меня, с минимальными побочными эффектами на странице:

.... style="width: 0px ; height: 0px" ....
0 голосов
/ 07 июня 2011

Просто заключив мой тип ввода = 'search' в тег формы, добился цели, когда столкнулся с этой проблемой. Надеюсь, это может помочь и другим, у кого была эта проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...