我已经阅读了这个问题的一些解决方案,但他们都使用对话框而不是模式,而且我尝试过的解决方案都没有工作。问题是我无法让我的 asp 按钮单击以在 jquery 模式内触发。这是代码:
$(function () {
$('.showmodal-login').click(function (e) {
// e.preventDefault();
ShowLoginForm($(this).attr('href'));
return false;
});
$('#<%= btnClose.ClientID %>').click(function (e) {
e.preventDefault();
if (isMobile) {
$('.modal-content').each(function () {
if ($(this).is(':visible')) {
$(this).toggle();
}
});
$("#main").toggle();
}
else {
$.modal.close();
}
return false;
});
});
function ShowLoginForm(redirectUrl) {
if (isMobile) {
$("#modal-login").toggle();
$("#main").toggle();
$('#login-form').show();
$('#login-message').hide();
// $('#<%= btnSubmit.ClientID %>').attr('data-redirecturl', redirectUrl);
}
else {
$("#modal-login").modal({
maxWidth: 338,
autoResize: false,
close: false,
onShow: function (dlg) {
$('#login-form').show();
$('#login-message').hide();
//$('#<%= btnSubmit.ClientID %>').attr('data-redirecturl', redirectUrl);
ResizeModal();
}
});
}
}
html
<div id="modal-login" class="modal-content">
<div id="login-form">
<div class="content-wrap">
<p>Login with your username and password to access the selected link.</p>
<asp:Label ID="lblUsername" runat="server" AssociatedControlID="txtUsername">Username:</asp:Label>
<asp:TextBox ID="txtUsername" runat="server" Width="268px" ClientIDMode="Static" />
<asp:Label ID="lblPassword" runat="server" AssociatedControlID="txtPassword">Password:</asp:Label>
<asp:TextBox ID="txtPassword" runat="server" Width="268px" ClientIDMode="Static" TextMode="Password" />
</div>
<div id="btnSub" class="buttons">
<asp:HyperLink ID="hlnkCancel" runat="server" NavigateUrl="#" CssClass="close-modal">Cancel</asp:HyperLink>
<asp:Button ID="btnSubmit" runat="server" Text="Login" OnClick="btnSubmit_Click" />
</div>
</div>
<div id="login-message">
<div class="content-wrap">
</div>
<div class="buttons">
<asp:Button ID="btnClose" runat="server" Text="Close" />
</div>
</div>
我过去通过添加 jquery 对话框解决了这个问题
function reLoad() {
// jQuery.post();
document.forms["frmMain"].submit();
}
但这在这种情况下不起作用。