фокус ввода в jquery mobile, но клавиатура не отображается - PullRequest
25 голосов
/ 29 октября 2011

Я использую jquery, jquery mobile и phonegap. Я хочу показать клавиатуру на этой странице с input type = "text".

    <section id="page1" data-role="page">
        <header data-role="header">
            <h1>jQuery Mobile</h1>
        </header>
        <div data-role="content" class="content">

            <input type="text" placeholder="입력하세요" />
        </div>

    </section>

и мой скрипт

        $(document).ready(function(){
            $('input').select();
            $('input').focus();
        });

Текстовое поле сфокусировано, но клавиатура не отображается, и оно запускается при нажатии на тип ввода = «текст». Как заставить принудительно запустить клавиатуру в javascript или с помощью плагина phonegap?

Ответы [ 5 ]

4 голосов
/ 06 июня 2012

Ни одно из предыдущих решений не сработало для меня. Однако я заметил, что $ ('textarea'). Focus (). Select (); работал после того, как я захожу на страницу во второй раз. Поэтому я заставляю jquery mobile предварительно загружать данные в поле моего комментария.

Это мой общий код инициализации JQM (который не работает без 'data-prefetch'):

$('#comment-box-page').live('pageshow', function () {
   $('textarea').focus().select();
});

На странице списка есть поддельное изображение небольшого текстового поля, которое перенаправляет на comment-box.html, который представляет собой большую тестовую область с кнопками отправки и отмены.

        <div data-role="footer" data-position="fixed" data-theme="b" data-tap-toggle="false">
        <div data-role="fieldcontain">
            <a href="comment-box.html" data-prefetch><img src="fake-textfield.jpg"/>
            </a>
        </div>
    </div>
  • предварительная выборка данных - вот что имеет значение. Когда вы нажимаете на ссылку, страница будет работать так же, как во второй раз, когда вы ее посещали, включив фокусировку и подняв клавиатуру.
3 голосов
/ 29 октября 2011

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

1 голос
/ 27 мая 2012

Вы должны использовать событие "click", чтобы открыть клавиатуру:

$(document).live('click', function() {
    $("#input-element-id").focus();
});
0 голосов
/ 28 июня 2016

Я использую это в Cordova 6 для мобильного приложения Android и его работах:

- установите клавиатуру плагина Cordova: плагин Cordova добавьте Cordova-плагин-клавиатура

- тогда вы можете использовать клавиатуру.show () для отображения клавиатуры и keyboard.hide () для ее скрытия

  • вы можете сделать это, чтобы отобразить клавиатуру:

      $("#your_text_input").click(function () {
                    $(this).focus();
                    Keyboard.show();
      });
    
      $('#your_text_input').keydown(function(e) {
      if (e.which == 13) { //Enter keycode
        //your action
        ...
    
        // Now clear input and set focus back to input
        Keyboard.hide();
        $(this).val('').trigger("keyup").focus();
      }
      });
    
0 голосов
/ 06 декабря 2013
$("input").bind( "blur", function () {
       $(".ui-header-fixed" ).css("top","0 !important");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...