0

我已经阅读了这个问题的一些解决方案,但他们都使用对话框而不是模式,而且我尝试过的解决方案都没有工作。问题是我无法让我的 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();
}

但这在这种情况下不起作用。

4

1 回答 1

0

看起来您在 asp 按钮中缺少 UseSubmitBehavior="false" 。添加这样的..

<asp:Button ID="btnSubmit" runat="server" Text="Login" OnClick="btnSubmit_Click" UseSubmitBehavior="false" />

我遇到过同样的问题。我的只能使用链接按钮,因为它不使用提交行为。按钮这样做,您必须将其关闭。这应该有效。

于 2013-09-19T20:07:41.910 回答