【问题标题】:Bootsrap Modal on hide method does not triggerBootstrap Modal onhide 方法不触发
【发布时间】:2017-03-30 21:21:40
【问题描述】:

模态:

<div id="modalRelease" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Revision Release</h4>
            </div>
            <div class="modal-body">
                <div style="text-align:center; color:red;"><p>You are about to release to the next Revision level.</p></div>
                <div style="text-align:center;"><p>Description Required:</p></div>
                <div>
                    <textarea name="RevisionDescription" id="RevisionDescription" class="form-control" placeholer="Description..." data-rule-required="true" data-msg-required="Please enter a description."></textarea>
                </div>
            </div>
            <div class="modal-footer">
                <div class="alert alert-danger" id="RevisionSubmitError">A description is required.</div>
                <div>
                    <button type="button" class="btn btn-success" id="ReleaseSubmit">
                        <i class="fa fa-save"></i> Submit
                    </button>
                    <button type="button" class="btn btn-warning" data-dismiss="modal">
                        <i class="fa fa-remove"></i> Cancel
                    </button>
                </div>
            </div>
        </div>
    </div>
</div>

按钮点击捕获事件:

   $(document).on("click", "#ReleaseSubmit", function (event) {
        if ($.trim($('#RevisionDescription').val()) == "") {
            $("#RevisionSubmitError").fadeIn("slow", function () { });
        }
        else {
            submitForm('release')
        }
    });

然后,尝试捕获 Hide 事件,以便在用户关闭然后重新打开模式时错误消息仍然不可见,但这永远不会触发:

$('#modalRelease').on('hide.bs.modal', function () {
    $('#RevisionSubmitError').hide()
})

“RevisionSubmitError”是模态体内的一个 div。 div 永远不会隐藏。我也试过 hidden.bs.modal。

使用 Bootstrap v3.3.6

【问题讨论】:

  • 当模态框被隐藏时,您试图在模态框内隐藏 div?
  • 正确。它是一个 div,其中包含模态表单中的任何错误。因此,假设用户打开模式,提交有错误的表单。显示 div RevisionSubmitError。然后用户关闭模式。下次用户打开模式时,我希望 RevisionSubmitError 仍然不可见。
  • 为什么需要内联onclick处理程序?只需将 data-dismiss="modal" 属性添加到您的按钮,它也会关闭模式。
  • 我一开始也是这样,但是当hide.bs.modal方法不起作用时,我尝试了这个。
  • 由于您隐藏了模态框,没有正常删除它,如果您在模态框未显示后调用它,#RevisionSubmitError 将被隐藏事件,请您发布您的html

标签: javascript jquery html twitter-bootstrap


【解决方案1】:

提交表单后,您是否在模态框上调用.modal('hide')?这就是触发“hide.bs.modal”所需的调用

【讨论】:

  • 如果表单从未提交,我将如何/在哪里调用 .modal('hide')?问题是如果文本框为空,我们会显示 div RevisionSubmitError。然后,如果用户在不提交表单的情况下关闭模式,我希望在模式重新打开时隐藏 RevisionSubmitError。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 2019-04-08
  • 1970-01-01
  • 2014-08-04
相关资源
最近更新 更多