Как перейти к следующему вводу, нажав следующую кнопку на iPhone / iPad с Ionic1? - PullRequest
0 голосов
/ 20 сентября 2018
Клавиатура

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

 <div>        
    <input id="in" class="text-center col-33" type="number" ng-model="ngModel" ng-change="change()" (keyup.enter)="handleLogin()">
    </div>    


handleLogin() {
        e.preventDefault();
        var input = document.getElementById('in');
        input.focus();     
}

Может ли кто-нибудь иметь решение для этого

1 Ответ

0 голосов
/ 20 сентября 2018

Если у вас есть два или более ввода в форме, и вы хотите добавить accessoryBar, добавьте это:

Keyboard.hideFormAccessoryBar(false);

Затем вы должны увидеть следующее:

enter image description here

С курсорами, чтобы идти вверх и вниз.

Другое дело, если вы хотите изменить ввод с (keyup.enter) = , тогда вы должны вызватьфункция focus (), как я объясню далее.

Убедитесь, что в вашем config.xml есть следующее:

<preference name="KeyboardDisplayRequiresUserAction" value="false" />

Затем вызовите фокус почти так же, как вы это сделали, эта идея from @ oroc :

.factory('focus', function($timeout, $window) {
  return function(id) {
  // timeout makes sure that is invoked after any other event has been triggered.
  // e.g. click events that need to run before the focus or
  // inputs elements that are in a disabled state but are enabled when those events
  // are triggered.
  var element = $window.document.getElementById(id);
  $timeout(function() {
    if(element){
      element.focus();
    }
  });
 };
})

Ключом является вызов с таймаутом и тестом, с некоторой задержкой или многократным вызовом.

Я вызываю фокус ('') два раза, чтобыизбегайте мерцания (клавиатура скрывается, а затем показывается через полсекунды).

...