Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery mobile 在jquery mobile中的Safari after changePage中显示iOS键盘_Jquery Mobile_Mobile Safari - Fatal编程技术网

Jquery mobile 在jquery mobile中的Safari after changePage中显示iOS键盘

Jquery mobile 在jquery mobile中的Safari after changePage中显示iOS键盘,jquery-mobile,mobile-safari,Jquery Mobile,Mobile Safari,我知道,如果不在iOS safari上单击一下,用常规焦点()显示键盘几乎是不可能的,但我正在尝试做一些不同的事情。我使用jquery mobile在DOM中加载两个不同的页面(data role=“page”)。这两个页面上都有文本输入。当用户轻触第一页上的输入时,我希望向上滑动第二页,并将注意力集中在第二页上的输入上,并显示键盘。我可以通过在第一个输入上创建一个焦点事件侦听器,并在$('#secondpage').show()后面加上一个$('#secondinput').focus()来实

我知道,如果不在iOS safari上单击一下,用常规焦点()显示键盘几乎是不可能的,但我正在尝试做一些不同的事情。我使用jquery mobile在DOM中加载两个不同的页面(data role=“page”)。这两个页面上都有文本输入。当用户轻触第一页上的输入时,我希望向上滑动第二页,并将注意力集中在第二页上的输入上,并显示键盘。我可以通过在第一个输入上创建一个焦点事件侦听器,并在$('#secondpage').show()后面加上一个$('#secondinput').focus()来实现这一点。但是,如果我使用changePage()而不是show(),或者甚至在.show()上放置动画,则该字段将不会聚焦,键盘也不会显示

以下是我在第一页的输入:

<input type="text" name="input1" id="input1" data-theme="A">
以下代码不起作用:

$('#input1').on('tap', function() {
    $('#page2').show("slide", { direction: "up" });
    $('#input2').focus();
}); 
这也不起作用(这是最好的解决方案):


我尝试过的另一件事是在#input1上添加onclick属性,但无论我做什么,任何转换似乎都会破坏焦点和键盘。有什么建议吗?

试试下面的代码,您应该只在页面2加载完毕后才关注输入2

$(document).bind('pageinit', function() {
    $('#input1').on('tap', function() {
        $.mobile.changePage('#page2', { transition: 'slideup' });

    }); 
    $("#page2").bind('pageshow', function() {
        $('#input2').focus();
    });
});

这在电话上对我不起作用。它在普通浏览器中运行良好,但在iOS safari上会出现新页面,但没有关注它,键盘也没有显示出来。话虽如此,这正是我试图实现的行为,但我显然希望在最后显示键盘。我认为这是iOS的一项功能,除非用户与键盘交互,否则它不会显示键盘。
$('#input1').on('tap', function() {
    $('#page2').show("slide", { direction: "up" });
    $('#input2').focus();
}); 
$('#input1').on('tap', function() {
    $.mobile.changePage('#page2', { transition: 'slideup' });
    $('#input2').focus();
}); 
$(document).bind('pageinit', function() {
    $('#input1').on('tap', function() {
        $.mobile.changePage('#page2', { transition: 'slideup' });

    }); 
    $("#page2").bind('pageshow', function() {
        $('#input2').focus();
    });
});