[英]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.