gpt4 book ai didi

javascript - 在 jQuery 对话框关闭之前不返回结果?

转载 作者:行者123 更新时间:2023-11-30 16:53:52 25 4
gpt4 key购买 nike

我正在尝试根据 jQuery 对话框选择返回结果。在发送返回声明之前,我一直保持警惕。在我在对话框中做某事之前如何保持结果返回?值将为“真”或“假”

        function ConfirmDone() {
var results;
$('<div></div>').appendTo('body')
.html('<div><h6>Are you sure you want to lose unsaved changes?</h6></div>')
.dialog({
modal: true, title: 'Delete message', zIndex: 10000, autoOpen: true,
width: 'auto', resizable: false,
buttons: {
Yes: function () {
$(this).dialog("close");
results=true;
},
No: function () {
$(this).dialog("close");
results=false;
}
},
close: function (event, ui) {
$(this).remove();
results = false;
}
});
alert(results); //This is calling same when dialog shows up
return results;

}

这里有什么问题吗?

更新:

我不确定。回调函数可以应用于我的代码吗?正如@Barmar 在重复帖子中提到的那样

更新

@Ajax.ActionLink(
new { CommunicationLocation = commemail.Location, CommunicationType = "email" },
new AjaxOptions()
{
HttpMethod = "Post",
UpdateTargetId = "DivEmailContainer",
InsertionMode = InsertionMode.Replace,
OnBegin = "return ConfirmDone(function(success) {alert('You said: ' + (success ? 'Yes' : 'No'))});"
},
new { @class = "linkbutton" })
}

$(document).ready(function () {
$("#deletedialog").dialog({
autoOpen: false,
modal: true
});
});
function ConfirmDone(callback) {
$("#deletedialog").dialog({
buttons: {
"Delete":{ text: "Delete",
class: "btn btn-success",
click: function () {
$(this).dialog("close");
callback(true);
}
},
"Cancel": {
text: "Cancel",
class: "linkbutton",
click: function () {
$(this).dialog("close");
callback(false);
}
}
}
});


$("#deletedialog").dialog("open");

最佳答案

对话框是异步的。您需要传递一个回调函数:

    function ConfirmDone(callback) {
var results;
$('<div></div>').appendTo('body')
.html('<div><h6>Are you sure you want to lose unsaved changes?</h6></div>')
.dialog({
modal: true, title: 'Delete message', zIndex: 10000, autoOpen: true,
width: 'auto', resizable: false,
buttons: {
Yes: function () {
$(this).dialog("close");
callback(true);
},
No: function () {
$(this).dialog("close");
callback(false);
}
},
close: function (event, ui) {
$(this).remove();
callback(false);
}
});
}

然后你可以这样做:

ConfirmDone(function(success) {
alert("You said: " + (success ? "Yes" : "No"));
});

关于javascript - 在 jQuery 对话框关闭之前不返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30087584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com