在jquery mobile中输入焦点,但键盘不会出现

时间:2011-10-29 03:29:57

标签: keyboard jquery-mobile cordova

我正在使用jquery,jquery mobile和phonegap。 我想在这个页面上显示键盘输入类型=“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();
        });

文本字段已聚焦但键盘未显示,并且在单击输入type =“text”时进行了lauched。如何强制在javascript中启动键盘或使用phonegap插件?

5 个答案:

答案 0 :(得分:4)

以前的解决方案都不适合我。但是,我注意到$('textarea')。focus()。select();我第二次访问该页面后工作。所以,我强制jquery移动设备数据预取我的评论框页面。

这是我的通用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>
  • data-prefetch正在发挥作用。当您单击该链接时,该页面的行为将与您第二次访问该页面时的行为相同,从而启用焦点并启动键盘。

答案 1 :(得分:3)

你不能。如果您关注输入元素,移动浏览器不会显示键盘。用户必须点击输入元素。

答案 2 :(得分:1)

您必须使用“click”事件打开键盘:

$(document).live('click', function() {
    $("#input-element-id").focus();
});

答案 3 :(得分:0)

我在cordova 6中用于Android移动应用及其作品:

-install cordova插件键盘:cordova插件添加cordova-plugin-keyboard

- 然后你可以使用Keyboard.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();
      }
      });
    

答案 4 :(得分:-2)

$("input").bind( "blur", function () {
       $(".ui-header-fixed" ).css("top","0 !important");
});