Подтвердить что ты не робот

Html phonegap android: цифровая клавиатура имеет следующую, а не кнопку go

Это сводит меня с ума, и я не могу найти ответ нигде.

У меня есть формы в приложении phonegap. Если тип ввода = "текст", появляется текстовая клавиатура, а "угол" отображается в углу. Когда вы нажимаете go, он отправляет форму. Это все работает так, как я ожидал. Но если я использую тип ввода = "число", появляется цифровую клавиатуру, а в углу отображается "следующая". Когда вы нажимаете "Далее", если перед тегом кнопки есть другое поле ввода, оно переходит к этому вводу. Все в порядке., не идеал, но имеет смысл. Но если это последнее поле ввода на странице, нажмите "Далее" ничего не делает. Он не фокусируется на кнопке (даже с tabindex), и она не представляет форму (идеальную).

Я использую phonegap 1.3.0 и jquery 1.7, если это помогает.

4b9b3361

Ответ 1

Хорошо, теперь у меня есть что-то похожее на ответ и quacks, как на ответ.

Это ужасный взлом, и на данный момент я испытываю некоторые побочные эффекты, но в любом случае это небольшой скачок для человечества.

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

<input type='text' style="opacity:0;" onfocus="javascript:$('#thisForm').submit();">

Побочные эффекты:

  • поле скрытой формы на короткое время будет видимым. Вы можете избежать этого используя обработчик onfocus, чтобы снова перефокусировать поле числа, которое был только что оставлен. Или вы можете установить ширину ввода на 0. Последний работает лучше всего для меня.
  • Если вы используете jQueryMobile, как я, вы приглашаете на себя ужасное уродство перехода на страницу, поэтому, если ваша форма находится в диалоговом окне и отправка формы закрывает диалог, обязательно установите переход диалога (когда он открываются с предыдущего экрана) до "нет".

Ответ 2

Вы можете обнаружить следующее нажатие клавиатуры, используя следующую привязку в JQuery:

$('input').on('keydown', function(e){
    if(e.which === 9) {
        //your code here
    }
});

Кнопка "next" эмулирует событие нажатия клавиши табуляции на клавиатуре, которая key code 9. К сожалению, события нажатия клавиш и клавиш не обнаруживают следующее ключевое событие, поэтому вам нужно связать его при открытии ключа.

Надеюсь, что это поможет!