【问题标题】:Modal pop up does not hide while using javaScript in ASP.NET在 ASP.NET 中使用 javaScript 时不隐藏模式弹出窗口
【发布时间】:2016-03-31 08:54:02
【问题描述】:

我使用 jQuery 制作了模态弹出窗口。如果验证成功,我想要做的是隐藏窗口。 验证具有正确的值,但我的弹出窗口仍然在屏幕上。

这是我在 js 中的代码:

function validateAndCloseDirectDebitDialog(validationGroup, dialogID) {
         var pageValid = Page_ClientValidate(validationGroup);
         if (pageValid)
            $(dialogID).modal("hide");
         else {
            return false;
         }         
}

所以当我在浏览器中进行调试时,我能够看到 pageValid 获得正确的值(true - 当验证良好时)它进入 if 循环,但无论如何它不会隐藏模式。

我也试过这样做:dialogID.modal("hide");since dialogID 是 jQuery 对象,但没有任何改变。

我从 ASP.NET Web 表单按钮调用此函数,如下所示:

<asp:Button runat="server" ID="btnUpdate" meta:resourcekey="btnUpdate" CausesValidation="False"  OnClientClick = "validateAndCloseDirectDebitDialog('vgDirectDebitApplication' , bankInformation);" />

bankInformation 是这样定义的变量:

var bankInformation = $('#<%=bankInfoDialog.ClientID%>');

bankInfoDialog 是 div 的 ID,由模态上显示的控件组成:

<div id="bankInfoDialog" runat="server" class="modal hide fade" tabindex="-1" role="dialog">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" style="display: none">×</button>
        <h1 id="bankInformationDialogHeader"><%=GetLocalResourceObject("BankInfoHeader") %></h1>
    </div>
    <div class="modal-body">
        <ABS:BankInformation runat="server" ID="bankInformation" AllFieldsRequired="True" SetFocusOnError="False" />
    </div>
    <div class="modal-footer">
        <asp:Button runat="server" ID="btnUpdate" meta:resourcekey="btnUpdate" CausesValidation="False"  OnClientClick = "validateAndCloseDirectDebitDialog('vgDirectDebitApplication' , bankInformation);" />
        <button id="btnCancel" runat="server" data-dismiss="modal" aria-hidden="true"><%=GetLocalResourceObject("Cancel")%></button>
    </div>
</div>
<asp:UpdatePanel runat="server" ID="upShortAccountInfo" UpdateMode="Conditional" ChildrenAsTriggers="False" EnableViewState="True" >
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnUpdate" EventName="Click" />
    </Triggers>
    <ContentTemplate>
        <ABS:ShortAccountInfo runat="server" ID="shortAccountInfo" />
    </ContentTemplate>
</asp:UpdatePanel>

还有其他方法可以在js中隐藏模态吗?

【问题讨论】:

  • bankInformation 变量的值?
  • 你是在dialogID前面加上'#'吗?向我们展示更多代码。
  • @Hemal 我会立即用其他代码更新我的问题。
  • @MuhammadAtif 我会将其添加到我的问题中。
  • 尝试使用 $('[id$=bankInfoDialog]')

标签: javascript jquery asp.net twitter-bootstrap


【解决方案1】:
try sending ID instead of object
<asp:Button runat="server" ID="btnUpdate" meta:resourcekey="btnUpdate" CausesValidation="False"  OnClientClick = "validateAndCloseDirectDebitDialog('vgDirectDebitApplication' , 'modalid');" />

And in js

function validateAndCloseDirectDebitDialog(validationGroup, dialogID) {
         var pageValid = Page_ClientValidate(validationGroup);
         if (pageValid)
            $("#"+dialogID+"").modal("hide");
         else {
            return false;
         }         
}

【讨论】:

  • 我已经尝试过这样...没有任何改变... :( @MuhammadAtif
  • 没有任何帮助。它仍然可见。@MuhammadAtif
猜你喜欢
  • 1970-01-01
  • 2022-12-31
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多