模态框弹出后如何获得焦点(已经解决)

导航栏中,用button做了一个登录按钮,点击登录后,弹出模态框,然后就显示有用户名和密码的输入框,此时用户名输入框并不能required autofocus自动获得焦点。使用jQuery对在点击按钮后给用户名输入框绑定focus事件也不行。求指教,新手。
另外咨询大家一下,如何能把这个下拉菜单做的和咱们这个社区顶部的“发起”一样,列表和按钮粘在一起,一个颜色,感觉不脱节,美美哒。
<!-- start navigation -->
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
  <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
  </button>
  <a class="navbar-brand" href="/laheng0.1.1"></a>
</div><!--/.navbar-header -->
<div id="navbar" class="navbar-collapse collapse">
  <ul id="ulnav" class="nav navbar-nav">
    <li><a href="/laheng0.1.1">首页</a></li>
  </ul>
  <!-- <form class="navbar-form navbar-right">
    <div class="form-group">
      <input type="text" placeholder="Email" class="form-control">
    </div>
    <div class="form-group">
      <input type="password" placeholder="Password" class="form-control">
    </div>
    <button type="submit" class="btn btn-success">Sign in</button>
  </form> -->
  <ul class="nav navbar-nav navbar-right">
    <li>
      <input type="hidden" id="sessionmember" value=""/>
      <div id="menu">
        <button type="button" id="dLabel" class="btn btn-success navbar-btn" data-toggle="modal" data-target="#loginModal">登录</button>
        <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
          <li><a href="#">Action</a></li>
          <li><a href="#">Another action</a></li>
        </ul>
      </div>
    </li>
    <li>
      <a href="regist.jsp" id="regist">注册</a>
    </li>
  </ul>
</div><!--/.navbar-collapse -->
</div>
</nav>
<!-- end navigation -->

<!-- Modal -->
<div class="modal fade" id="loginModal" tabindex="-1" role="dialog" aria-label="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
      <span aria-hidden="true">&times;</span>
    </button>
    <h3 class="modal-title">登录</h3>
  </div>
  <form action="login-action.form" method="post">
    <div class="modal-body">
      <div class="form-group">
        <label class="control-label">用户名</label>
        <input id="modalusername" type="text" name="username" class="form-control" placeholder="用户名" required autofocus/>
        <span class="label label-warning" id="modalusername_msg"></span>
      </div>
      <div class="form-group">
        <label class="control-label">密码</label>
        <input id="modalpassword" type="text" name="password" class="form-control"/>
        <span class="label label-warning" id="modalpassword_msg"></span>
      </div>
    </div>
    <div class="modal-footer">
      <button type="submit" class="btn btn-primary">登录</button>
      <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
    </div>
  </form>
</div>
</div>
</div> <!-- /Modal -->

/* 为header.jsp提供js支持 */
$(function(){
//根据登录状态改变导航条
if($('#sessionmember').val().length != 0){
    $('#menu').addClass('dropdown');
    $('#dLabel').empty().append($('#sessionmember').val()+'个人中心<span class="caret"></span>').attr('data-toggle','dropdown').attr('aria-haspopup','true').attr('aria-expanded','false').removeAttr('data-target');
    $('#ulnav').append('<li><a href="toindex.form">管理页面</a></li>');
    $('#regist').attr('href', 'tologout.form').empty().append('退出');
}//else{
    //$('#modalusername').focus();
    //$('#modalusername').blur(check_empty('modalusername_msg'));
    //$('#modalpassword').blur(check_empty('modalpassword_msg'));
//}
});
已邀请:

苏年年

赞同来自: 哈资百科

本问题终于在今天解决掉了。
这个应该是,模态框出来后,让输入框获得焦点。所以,应该用JS去做这件事情。在模态框事件中,当模态框已经显示出来时,让输入框获得焦点。下来上代码。
在$(function(){})中增加以下代码:
$('#loginModal').on('shown.bs.modal',function(e){
$('#modalusername').focus(); //通过ID找到对应输入框,让其获得焦点
});

张杨

赞同来自: 哈资百科

追问楼主一个问题,模态框可以进行数据的传递吗?是再写一个Action吗?

要回复问题请先登录注册