好的,所以我找到了一种在一定程度上做到这一点的方法。在 Android 上的 Chrome 上测试。这是 jsFiddle:http: //jsfiddle.net/Twisty/x0tcr5ph/2/
查询:
$(document).on("pageshow", "#loginDialog", function () {
// When entering loginDialog
$("label:first").click();
});
$(function () {
$("#startBtn").click(function () {
$.mobile.changePage('#loginDialog', 'pop', true, true);
});
});
HTML:
<div data-role="page">
<div data-role="header" data-theme="b">
<h1>Test Focus onLoad</h1>
</div>
<div data-role="content"> <a href="#" id="startBtn" data-role="button">Login</a>
</div>
</div>
<div id="loginDialog" data-role="dialog">
<div data-role="header" data-theme="b">
<h2>Login</h2>
</div>
<div data-role="content">
<form>
<label for="text1">User</label>
<input type="text" name="login" id="text1" />
<label for="text2">Password</label>
<input type="password" name="pass" id="text2" />
<button type="submit">Submit</button>
</form>
<script>
$("label:first").click(function() {
$("#text1").focus();
});
</script>
</div>
</div>
当登录对话框打开时,焦点通过click()
事件发送到文本框。它在加载所有元素后执行,focus()
确实会调出键盘,因此用户可以立即开始输入。
怀疑可以在页面加载时使用pagecontainerload
.