在表单中按Enter键时,Bootstrap Dropdown总是会聚焦

时间:2014-05-15 03:55:27

标签: jquery html twitter-bootstrap

我的表格里面有不同的字段。我使用下拉按钮而不是普通的选择标签,以获得更好的用户体验。但问题是,当我在其他文本输入字段上按Enter键时,此下拉列表始终会聚焦。这很烦人并造成麻烦。

<form>
    <div class="row">
        <div class="col-md-6">
            <button type="button" class="btn btn-white dropdown-toggle" data-toggle="dropdown">
            <span class="dropdown-label">
                Test
            </span>
          </button>
          <button data-toggle="dropdown" class="btn btn-small btn-white dropdown-toggle">
            <span class="caret"></span>
          </button>
          <ul class="dropdown-menu dropdown-select" role="menu">
              <li><a>
                Testing 1
              </a></li>
              <li><a>
                Testing 2
              </a></li>
          </ul>
        </div>
        <div class="col-md-6">
            <input type="text" class="form-control"/>
        </div>
    </div>
</form>

这是JS小提琴:http://jsfiddle.net/ergLb/

你们有什么想法吗?

3 个答案:

答案 0 :(得分:10)

我添加了type =&#34; button&#34;它有效。

https://github.com/twbs/bootstrap/issues/3886

答案 1 :(得分:3)

mdo在引导问题单中给出了答案:https://github.com/twbs/bootstrap/issues/3886 您忘记了按钮上的type=button,这会触发下拉切换。代码应如下所示:

<button type="button" data-toggle="dropdown" class="btn btn-small btn-white dropdown-toggle">
    <span class="caret"></span>
</button>

答案 2 :(得分:1)

默认情况下,当在文本框中按下enter键时,它会以某种方式显示,它会触发下拉列表中的click事件。您可以使用e.preventDefault()return false来阻止此默认行为:

$(".form-control").keydown(function(e){
    if(e.keyCode == 13) {
        return false;
    }
});

<强> Updated Fiddle