2

在我的应用程序中,我有一个这样的登录表单

<div id="container">
  <form name="login" id="login" method="post" action="">
    <input name="email" type="text" class="label" id="email" placeholder="Enter email...">
    <input name="password" type="password" class="label" id="password" placeholder="Enter password...">
    <input type="submit" name="submit" id="submit" value="Login">
    <a href="register.html" class="sign">Sign Up</a>
  </form>
</div>

在触摸设备上,当我点击屏幕时,焦点会离开表单字段(输入、按钮、链接)。这发生在黑莓和安卓设备上,没有在iphone上尝试过。

如何防止焦点离开表单域?我正在用 phonegap 构建应用程序。

4

2 回答 2

1

我认为您不能阻止用户单击/选择其他内容,但是您可以在失去焦点时返回焦点。最简单的情况:

<input onblur="this.focus()" type="text" name="text1"/>

但是您可以将用户永远锁定在该输入中,除非您将其替换为评估当前输入是否由于某种原因仍需要焦点的函数,否则不会再次触发焦点。

如果您的问题是当用户这样做以滚动页面时,那么您可以尝试以下操作:

<script type="text/javascript">
    var last_selected_input;
    window.onscroll = function () {
        if (last_selected_input) {
            last_selected_input.focus();
        }
    }
</script>

<input type="text" name="text1" onfocus="last_selected_input = this" />

但是您需要在last_selected_focus字段完成时清除该变量,以避免持续关注每个页面滚动。

于 2013-05-18T20:33:17.393 回答
0

可以像保持当前所选输入的变量一样简单。

$(document).ready(function () {
    var selected;
    $('input').focus(function (e){
       selected = $(this).attr('id');
    });
    $('window').blur(function() {
       $('#selected').focus();
    });
});
于 2013-05-18T20:33:45.217 回答