Событие кнопки отправки формы не захватывается, когда клавиатура iOS 7

Я создаю веб-приложение, используя cordova для iOS. У меня есть эта форма

<form id="formID">

  <div class="row">
    <input type="text" name="something1" placeholder="something1" class="form-control" required maxlength="26" />
  </div>

  <div class="row">
    <input type="text" name="something2" placeholder="something2" class="form-control" pattern=".{6,6}" required />
  </div>

  <div class="row">
    <input type="submit" value="Submit" class="button btn-primary" />
  </div>

</form>

в моем javascript у меня есть прослушиватель для события submit.

моя проблема в том, что когда клавиатура отображается в iOS, нажатие кнопок отправки не всегда вызывает событие отправки. Somethimes он работает первые 2 раза, но затем перестает работать. Кто-нибудь сталкивался с этим раньше?

Как это сейчас вам может потребоваться сначала нажать кнопку "Готово" на клавиатуре (чтобы он исчез), а затем используйте кнопку "Отправить". Или нажмите кнопку "Отправить" с клавиатурой, показывающей, что заставит keybpoard скрыть, а затем снова нажмите "Отправить".

какие идеи?

редактировать

он отлично работает на iOS 6,но на iOS 7 кнопка отправки не вызывает событие после первых 2 кликов.

1 ответов


Итак, я решил проблему, с которой столкнулся. Как указано в вопросе, он отлично работал для ios6 и android. Но для ios7 я заметил, что когда я увеличил высоту текстовых полей над кнопкой отправки, я получил ошибку, описанную выше. Когда я не добавил какой-либо нестандартный стиль, который повлиял на высоту элементов над кнопкой отправки, работал. Странно право.

но потом я прочитал этот вопрос.

поэтому вместо кнопки "Отправить" и мой скрипт дождитесь запуска события submit, я изменил кнопку на ссылку и прослушал событие touchend. БАМ, это сработало как заклинание.

$(document).on('touchend', 'form #button', function (e) {
    $('#formID').submit();
});

поэтому я позволил этому событию обойти и вызвать событие отправки, чтобы нажатие кнопки " Go " на клавиатуре все еще запускало функцию отправки.