1

同じASPボタンにアラートと確認の両方のポップアップが必要な状況があります。検証のためのアラートが必要です。ユーザーが必要なすべての情報を入力したら、電子メールを送信したり、別のエントリを送信したりするための確認ポップアップが必要です。

アラートと確認の両方にjQueryダイアログポップアップをすでに使用していますが、同じボタンでそれらを組み合わせる方法がわかりません。

//私の確認コード

<script type="text/javascript">
    jQuery(function() {
        var dlg = jQuery("#dialog").dialog({

            draggable: false,
            autoOpen: false,
            minHeight: 10,
            minwidth: 10,
            zIndex: 99999

        });
        $('#<%=btnStart.ClientID%>').click(function() {
            $('#dialog').dialog('open');
        });
        $(".ui-dialog-titlebar").hide();
        $(".ui-dialog-titlebar-close").hide();
       dlg.parent().appendTo(jQuery("form:first"));
    });
<asp:Button  id="btnStart" runat="server" Text="btnStart"  onclick="btnStart_Click" />
<div id="dialog" style="text-align: center; display: none;font-size:14px;">
    <table>
        <tr>
            <td colspan="2">
                <asp:Label Text="Do you want to exclude these dates?" runat="server" ID="lbl"></asp:Label>
            </td>
        </tr>
        <tr>
            <td>
                <asp:Button ID="btnOk" runat="server" Text="Yes" OnClick="btnOK_Click" Style="width: 60px;" />
            </td>
            <td>
                <asp:Button ID="Button1" runat="server" Text="No" OnClick="btnCancel1_Click" Width="60px" />
            </td>
        </tr>
    </table>
</div>

//アラートポップアップ

    $(document).ready(function() {
   $('#<%=btnStart.ClientID%>').click(function() {
        alert("Correct it!");
    });

    });

これは.netWebアプリケーションです。

4

2 に答える 2

1

jQuery .clickイベントを使用してどの程度デッドセットになっているのかわかりませんが、次のように、onClientClickプロパティを使用してボタンから直接複数の関数を呼び出すことができます。

<asp:button runat="server" text="submit" OnClientClick="alert('fn1');alert('fn2');" onclick="ServerSubmitLogicMethod" />

編集1:明確にするために、匿名関数(onclickイベントのすべての周りに暗黙的に作成されます)を定義することさえせずに、イベントで直接スクリプトを実行できます。本番環境では、このすべてのロジックをsubmit()のような関数にプルしますが、あなたはこのようなことをすることができます:

<asp:button runat="server" text="submit" OnClientClick="if(formIsValid()){alert('confirmed!');}" onclick="ServerSubmitLogicMethod" />

どこ

function formIsValid()
{
//some validation logic ultimately leading to a Boolean return//
return true;
}

とは言うものの、次のように、検証アラートをコード内の確認ロジックとともにvalidates()関数呼び出しに入れることができない理由はありません。

    jQuery(function() {
        var dlg = jQuery("#dialog").dialog({

            draggable: false,
            autoOpen: false,
            minHeight: 10,
            minwidth: 10,
            zIndex: 99999

        });
        $('#<%=btnStart.ClientID%>').click(function() {
            if(validates())
            {           
              $('#dialog').dialog('open');
            }
        });
        $(".ui-dialog-titlebar").hide();
        $(".ui-dialog-titlebar-close").hide();
       dlg.parent().appendTo(jQuery("form:first"));
    });

function validates(){
//...validation logic...//
alert("Correct it!");
return false;
}
于 2012-08-24T20:02:18.917 に答える
0

jqueryUIのDialogプラグインを使用している場合は、closeイベントを使用できます。

彼らのウェブサイトから:

イベントを閉じる

このイベントは、ダイアログが閉じられたときにトリガーされます。

コード例

クローズイベントをinitオプションとして処理するためのコールバック関数を提供します。

$( ".selector" ).dialog({
   close: function(event, ui) { ... }
});
//Bind to the close event by type: dialogclose.
$( ".selector" ).bind( "dialogclose", function(event, ui) {
  ...
});

ポップアップが閉じられた後にトリガーされます。

編集:これは同じボタンにはありませんが、最初に一方のダイアログを開き、次にこのダイアログを閉じるともう一方を呼び出すため、コールバック関数として機能します。

于 2012-08-24T18:51:54.147 に答える