Как получить кнопку "Далее" на Android-клавиатуре вместо кнопки "Перейти" в телефонной щели
Я занимаюсь разработкой приложения PhoneGap и у меня есть много входов в форме заявки. Я получаю кнопку Go на клавиатуре Android. Я хочу заменить кнопку Go следующей кнопкой. При нажатии на кнопку Go (как показано на рисунке) отправляется форма. В родном андроиде мы можем указать следующую кнопку в XML, но для Phonegap как указать следующую кнопку вместо кнопки перехода. На некоторых устройствах Samsung по умолчанию кнопка Next Prev расположена сверху.
По умолчанию есть кнопка Go. Мне нужно Next, но в Phonegap. Есть ли плагин для указания, что для Android.
7 ответов
Использование кнопки "Далее" вместо "Перейти" невозможно с Android на данный момент.
Android всегда будет отображать кнопку "Перейти" для полей ввода формы. "Go" в основном отражает то же поведение, что и кнопка "Enter" в обычном браузере и клавиатуре. Вы можете достичь с помощью кода ниже:
if (event.keyCode == 13) {
//Handling "Go" Button to move to next input field
}
ИЛИ ЖЕ
Если ваши поля ввода больше, то зависимость от данных будет лучшим решением. Если вы хотите запретить пользователям отправлять форму, вы можете поместить необходимые проверки в форму, используя javascript, где вы можете указать зависимость от данных внутри поля ввода с помощью required, что помогает переместить курсор в определенное поле, которое вы указали в data-зависимость,
<input type="text" id="first" data-dependency="second" />
<input type="text" id="second" data-dependency="third" />
<input type="text" id="third" />
Он перемещает фокус на следующие поля в форме, пока не станет вашим последним полем. Как только последнее поле достигнет, вы можете позволить ему действовать как ввод. Так что в основном Go будет перемещать фокус на следующие поля, пока не станет последним, а затем отправит форму.
Вы пробовали атрибут
enterkeyhint
Свойство enterKeyHint — это перечисляемое свойство, определяющее, какая метка действия (или значок) должна отображаться для клавиши ввода на виртуальной клавиатуре. Он отражает глобальный HTML-атрибут enterkeyhint и является перечисляемым свойством, принимающим только следующие значения в качестве DOMString:
- 'enter' обычно указывает на вставку новой строки.
- «Готово» обычно означает, что вводить больше нечего, и редактор метода ввода (IME) будет закрыт.
- 'go' обычно означает направить пользователя к цели набранного им текста.
- «следующий» обычно переводит пользователя к следующему полю, которое будет принимать текст.
- «предыдущий» обычно переводит пользователя в предыдущее поле, которое будет принимать текст.
- «поиск» обычно приводит пользователя к результатам поиска введенного им текста.
- 'send' обычно доставляет текст адресату.
Если значение не было указано или если оно было установлено на значение, отличное от разрешенных, будет возвращена пустая строка.
Свойство является перечисляемым свойством, определяющим, какую метку действия (или значок) отображать для клавиши ввода на виртуальной клавиатуре. Он отражает
enterKeyHint
Глобальный атрибут HTML и является перечисляемым свойством, принимающим только следующие значения в качестве DOMString:
<main>
<h2>Using the <code>enterkeyhint</code> Attribute</h2>
<p>View this demo on a mobile device. Note the text in the "enter" key on your mobile device's virtual keyboard.</p>
<input type="text" enterkeyhint="Next">
</main>
Было сказано, что если есть поля ввода без или за пределами тега формы, вы получите следующую кнопку в качестве кнопки табуляции
Насколько я знаю, нет правильного решения, чтобы получить следующую кнопку вместо идти. Есть только обходные пути сделать это. Наиболее распространенным является захват кнопки "Перейти" в качестве ключа ввода (код клавиши "13") в javascript и выполнение своей задачи.
$('selector').on("keydown",function(event){
if (event.keyCode == 9) {
//you got tab i.e "NEXT" Btn
}
if (event.keyCode == 13) {
//you got enter i.e "GO" Btn
}
});
для кнопки вкладки вместо ввода
Там были также источники, которые уже обсуждают эти GO против следующей кнопки
Вы можете просто использовать следующую логику, чтобы позволить пользователям сосредоточиться на следующем поле ввода. Это лучший подход, который я использовал в одном из своих приложений PhoneGap, так как в настоящее время нет сторонних плагинов, которые предлагают такую функциональность.
x$('#input1').on('keyup', function(e) {
var mEvent = e || window.event;
var mPressed = mEvent.keyCode || mEvent.which;
if (mPressed == 13) {
// On enter, go to next input field
document.getElementById('input2').focus();
}
return true;
});
Кому это может быть полезно:
Я работаю над реакцией pwa, и у меня возникли проблемы с отображением следующей кнопки, чтобы пользователи могли переходить от одного элемента ввода к другому (на одном экране). Оказывается, андроид требует
<form>
для переноса элементов ввода текста.Я провел серию тестов:
- ввод текста внутри (без tabindex, без атрибутов, кроме типа, ничего)
- вводить тексты за пределами a (то же, что и выше)
- вводить тексты внутри
внутри
- вводить тексты внутри
за пределами
Только те входные данные внутри получают поведение Android по умолчанию next-next-go по умолчанию, где go = последний ввод в форме.
Вы пытались использовать tabindex
параметр на ваших полях ввода?
Действие клавиатуры по умолчанию должно быть следующим: tabindex
обнаружен.
Пример:
<input name="first" tabindex="1" /> //should show next
<input name="second" tabindex="2" /> //should show next
<input name="third" tabindex="3" /> //should show go