簡體   English   中英

我可以在javascript中獲得兩個連續的對話框嗎?

[英]Can I get two successive dialogs in javascript?

當用戶單擊提交時,我需要檢查兩個不相關的條件,並要求每個用戶提供反饋。

我可以使一個jquery對話框運行良好,但是有時我需要連續兩次,然后完成按鈕事件。

要點是:我有按鈕

<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />

然后一些Jquery檢查某個條件,如果為true,則會彈出一個對話框。 如果對話框打開,我將返回false,因此不會發生原始的click事件,但是在大多數情況下,我希望它通過:

 $("#<%=btnSubmit.ClientID %>").click(
        function() {
           if (Condition) {
                $('#Dialog').dialog('open');
                return false;
            }
            return true;
        }
        );

我沒有使用常規對話框按鈕,但是有另一個asp:button在后面的代碼中調用了另一個OnClick事件:

$("#Dialog").dialog({
            bgiframe: true,
            autoOpen: false,
            height: 90,
            width: 450,
            modal: true,
            close: function() {}
<div id="Dialog">
   <asp:Button  ID="Button1" runat="server" Text="OK" OnClick="btnDeleteSomethingThenSubmit_Click" />
    <input type="button" value="Cancel" id="btnCancelDialog" />  
</div>

太好了。 無論如何都可以。 但是我還需要檢查另一個條件,並使用不同的對話框,但是這次只是一個是/否標志,並且我不需要觸發服務器端事件,因此,如何首先彈出一個窗口,等待響應並設置一個值,彈出第二個,然后轉到OnClick事件? 就像是 :

$("#<%=btnSubmit.ClientID %>").click(
        function() {
           if (OtherCondition) {
                $('#Dialog2').dialog('open');

            }
           if (Condition) {
                $('#Dialog').dialog('open');
                return false;
            }
            return true;
        }
        );

這顯然是行不通的。

你不能有這樣的東西:

$("#<%=btnSubmit.ClientID %>").click(
  function() {
    var success = true;
     if (OtherCondition) {
       $('#Dialog2').dialog('open');
       success = false;
     }
     if (Condition) {
       $('#Dialog').dialog('open');
       success false;
     }
     return success;
    }
  );

基本上,捕獲在變量中返回false任一對話框,否則返回true並允許表單提交?

jQuery對話框是非阻塞的,並且行為不像本地JavaScript對話框,這就是為什么您不能這樣做

$("#<%=btnSubmit.ClientID %>").click(function() {
    if (OtherCondition) {
        $('#Dialog2').dialog('open');
    }
    if (Condition) {
        $('#Dialog').dialog('open');
        return false;
    }
    return true;
});

您需要像這樣使用close回調

$("#<%=btnSubmit.ClientID %>").click(function() {
    if (OtherCondition) {
        $('#Dialog2').dialog('open', {
            close: function() {
                if (Condition) {
                    $('#Dialog').dialog('open', {
                        // Call some function here to report the status
                        close: function() {}
                    });
                } else {
                    // Call some function here to report a different status
                }
            }
        });
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM