【问题标题】:Bootstrap modal form closing before validation验证前关闭引导模式表单
【发布时间】:2014-01-19 02:14:14
【问题描述】:

我使用此处的示例来构建我的表单:http://bootply.com/60244

我的 javascript 似乎没有被调用,所以只要我点击“保存更改”,表单就会关闭。任何想法将不胜感激

这是我的代码

    <!-- Modal -->
    <div class="modal hide fade" id="mailerModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
          <h3_pink id="myModalLabel">Request a Mailer Bag</h3_pink>
        </div>
        <div class="modal-body">
            <h3_pink> </h3>
            <form method="post" id="FormMailer" action="soon2.php">
                <input type="hidden" name="FormMailer" value="1">
                <table>
                    <tbody>
                        <tr><td>First Name</td><td><input type="text" name="contact_fname" id="contact_fname" style="width:90%"><span class="hide help-inline">This is required</span></td>
                        <td>Last Name</td><td><input type="text" name="contact_lname" id="contact_lname" placeholder="Last Name" style="width:90%"><span class="hide help-inline">This is required</span></td></tr>
                        <tr><td>Email Address</td><td colspan="3"><input type="text" name="contact_email" id="contact_email" placeholder="Email Address" style="width:90%"><span class="hide help-inline">This is required</span></td></tr>
                        <tr><td>Street1</td><td colspan="3"><input type="text" id="contact_street1" name="contact_street1" placeholder="Street" style="width:90%"><span class="hide help-inline">This is required</span></td></tr>
                        <tr><td>Street2</td><td colspan="3"><input type="text" id="contact_street2" name="contact_street2" placeholder="Street" style="width:90%"></td></tr>
                        <tr><td>City</td><td colspan="3"><input type="text" id="contact_city" name="contact_city" placeholder="City" style="width:90%"><span class="hide help-inline">This is required</span></td></tr>
                        <tr><td>Zip</td><td colspan="3"><input type="text" name="zip" id="zip" style="width:90%"><span class="hide help-inline">This is required</span></td></tr>
                        <tr><td>Message</td><td colspan="3"><textarea id="contact_message" name="contact_message" style="width:90%"></textarea></td></tr>
                    </tbody>
                </table>
            </form>
        </div><!-- /.modal-body -->
        <div class="modal-footer">
            <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
            <button class="btn btn-primary" data-dismiss="modal" id="FormMailerSubmit">Save changes</button>
        </div>
    </div><!-- /.modal -->
    <!-- Modal Ends -->

    <script src="https://code.jquery.com/jquery.js"></script>
    <script src="/soon/js/bootstrap.js"></script>
    <link rel="stylesheet" href="soon/styles/bootstrap.min.css" media="screen"  />
    <link rel="stylesheet" href="soon/styles/bootstrap-responsive.min.css" media="screen"  />
    <link rel="stylesheet" href="soon/styles/style.css"/>
    <link rel="stylesheet" href="soon/styles/style_responsive.css"/>

    <script type='text/javascript'>
        $(document).ready(function() {
            $('#FormMailerSubmit').click(function(){
            if ($('#contact_fname').val()==="") {
                  // invalid
                  $('#contact_fname').next('.help-inline').show();
                  return false;
                }
                else {
                  // $('#FormMailer').submit();

                  return true;
                }
            });
        });           
    </script>

【问题讨论】:

    标签: javascript jquery forms twitter-bootstrap


    【解决方案1】:

    由于按钮上的data-dismiss="modal" 属性而关闭。删除它,它不会关闭。如果你需要在你的 JS 中关闭它,你可以使用modal.modal('hide');

    【讨论】:

    • 我上面链接的示例代码显示了保存更改按钮代码示例中的 data-dismiss="modal" ...但为了安全起见,我删除了 data-dismiss= “模态”,它仍然关闭。我的 js 文件中可能有冲突,导致我的嵌入式 js 根本没有被执行
    • 我实际上认为我以前在模式中使用 2 个按钮时遇到过这个问题。不如尝试为保存更改按钮添加锚标记,看看是否有帮助。
    【解决方案2】:

    好的,第一件事

    • 指定所有按钮的类型 - 默认类型应该是 submit 按钮,不是普通按钮。

    • 您可能希望在模态hide 事件中进行验证。如果 数据无效,从事件处理程序返回false,它 不会关闭。这只会给您留下识别的小问题 事件是来自关闭/取消按钮还是预期的 提交按钮....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 2023-04-08
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      相关资源
      最近更新 更多