我使用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");
因为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中隐藏模态吗?
答案 0 :(得分:0)
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;
}
}