0

jquery ui ダイアログに次のようなボタンがあります。

<div id="dialog-confirm" title="Multiple Account Login" style="display: none;">
     <a class="close-btn" href="#" id="A16">
                <img src="../../Content/NewDesign/images/cross.png" width="28" height="28" alt="close dialog" onclick="closeMultipleAccountDialog();" /></a>
            <div class="clear-n">
            </div>
</div>

このボタンをクリックすると、関数が呼び出されます

    function closeMultipleAccountDialog() {
        $("#hdfAccount").val("cancel");
        $("#hdPage").val("151API");
        $("#hdID").val($("#ID").val());
        $("#hdPSSWD").val($("#PSSWD").val());
        $("#hdACCID").val($("#ACCID").val());
        $("#hdPASSWDINT").val($("#PASSWDINT").val());
        $("#frmsetAccount").submit();
        $(this).dialog("close");        
     }

この関数はフォームを送信する必要があります:

      <form action="../Account/SetAccount" method="post" id="frmsetAccount">
                            <div class="flds-up">
                                <div class="lft-txt">
                                    Account <span>:</span></div>
                                <div class="user-fld">
                                    <%=  ViewData["MyAccountsList"] %>
                                </div>
                                <div class="clear-n">
                                </div>
                                <input type="hidden" id="hdfAccount" name="hdfAccount" value="" />
                                <input type="hidden" id="hdPage" name="hdPage" value="" />
                                <input type="hidden" id="hdID" name="hdID" value="" />
                                <input type="hidden" id="hdPSSWD" name="hdPSSWD" value="" />
                                <input type="hidden" id="hdACCID" name="hdACCID" value="" />
                                <input type="hidden" id="hdPASSWDINT" name="hdPASSWDINT" value="" />
                            </form>

and dialog code is like this:

$("#dialog-confirm").dialog({
                autoOpen: true,
                resizable: true,
                modal: true,
                width: 458,
                Height: 184,

                buttons: {
                    "Login": function () {
                        $(this).dialog("close");
                        $("#hdfAccount").val("login");
                        $("#hdPage").val("151API");
                        $("#hdPage").val("151API");
                        $("#hdID").val($("#ID").val());
                        $("#hdPSSWD").val($("#PSSWD").val());
                        $("#hdACCID").val($("#ACCID").val());
                        $("#hdPASSWDINT").val($("#PASSWDINT").val());
                        $("#frmsetAccount").submit();
                    }                   
                },
                open: function (event) {
                    $('.ui-dialog-buttonpane').find('button:contains("Login")').focus();
                    $('.ui-dialog-buttonpane').find('button:contains("Login")').addClass('customokbutton');
                },
                close: function (event) {
                    closeMultipleAccountDialog();
                }
            });

ログインボタンで機能し、フォームが送信されますが、ダイアログを閉じると機能しません。これに対する解決策を教えてください。

4

1 に答える 1

0

event.preventDefault()jquery ui コードのため、動作しません:

        uiDialogTitlebarClose = $( "<a href='#'></a>" )
            .addClass( "ui-dialog-titlebar-close  ui-corner-all" )
            .attr( "role", "button" )
            .click(function( event ) {
                event.preventDefault();
                that.close( event );
            })

dialog("close") を使用する場合。ダイアログを閉じ、クリック イベントに関連する他のすべての機能を無効にします。あなたはそれを削除することができ、あなたのコードは機能しますが、<a class="close-btn" href="#" id="A16">以前に妨げられたリンクも有効にします!

于 2013-03-10T18:00:27.467 に答える