按下Enter键时,Bootstrap 3模态关闭,但不提交表单

Ion*_*zău 10 html forms jquery twitter-bootstrap

我有以下Twitter Bootstrap 3模式,在模态内部有一个表单:

<!-- Button trigger modal -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
  Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="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-hidden="true">×</button>
            <h2 class="modal-title">Add new page</h2>
        </div>
        <div class="modal-body">
            <form class="form-horizontal add-new-page-form">
                <fieldset>
                    <!-- Label -->
                    <div class="form-group">
                      <label class="col-md-4 control-label" for="labelInput">Label</label>
                      <div class="col-md-5">
                      <input id="labelInput" name="labelInput" type="text" data-field="label" class="form-control input-md">
                      <span class="help-block">Page label</span>
                      </div>
                    </div>

                    <!-- Button (Double) -->
                    <div class="form-group">
                        <label class="col-md-4 control-label" for="closeBtn"></label>
                        <div class="col-md-8">
                            <button id="closeBtn" name="closeBtn" class="btn btn-default" data-dismiss="modal">Close</button>
                            <input type="submit" id="saveBtn" name="saveBtn" class="btn btn-primary add-page" value="Add">
                        </div>
                    </div>
                </fieldset>
            </form>
        </div>
     </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想submit通过jQuery 捕获事件:

$("form").on("submit", function () {
    alert("foo");
    return false;
});
Run Code Online (Sandbox Code Playgroud)

表单不是通过按键提交的Enter(当文本输入被聚焦时),而是在Add单击按钮(即submit一个)时提交.

我找不到为什么表单没有通过回车提交.模态只是关闭,但submit不会发出/触发事件.

JSFDDLE - 可以重现问题的地方

测试了Chromium版本34.0.1847.116 Ubuntu 14.04光环(260972)和Firefox 31.0.两种浏览器都存在同样的问

joh*_*ith 20

你可以简单地改变订单

close-button

submit-button
Run Code Online (Sandbox Code Playgroud)

submit-button

close-button
Run Code Online (Sandbox Code Playgroud)

或添加

 type="button"
Run Code Online (Sandbox Code Playgroud)

到你的关闭按钮,所以它不会被解释为提交按钮

干杯

  • 好吧,正确的答案是将type ="button"添加到你的关闭按钮,然后你不必改变顺序 (3认同)