我有一个jquery ui对话框我想用来提示用户确认删除.当用户按下"是"或"否"时,我需要返回"True"或"False"以继续执行一些javascript.下面的代码的问题是当对话框显示它立即执行"return true"时 但用户还没按下"是"按钮呢?
我究竟做错了什么?
HTML:
<div id="modal_confirm_yes_no" title="Confirm"></div>
Run Code Online (Sandbox Code Playgroud)
Javascript电话:
$("#modal_confirm_yes_no").html("Are you sure you want to delete this?");
var answer = $("#modal_confirm_yes_no").dialog("open");
if (answer)
{
//delete
}
else
{
//don't delete
}
Run Code Online (Sandbox Code Playgroud)
Jquery对话框:
$("#modal_confirm_yes_no").dialog({
bgiframe: true,
autoOpen: false,
minHeight: 200,
width: 350,
modal: true,
closeOnEscape: false,
draggable: false,
resizable: false,
buttons: {
'Yes': function(){
$(this).dialog('close');
return true;
},
'No': function(){
$(this).dialog('close');
return false;
}
}
});
Run Code Online (Sandbox Code Playgroud) function ValidateField(){
var bAllow= true;
//some checking here
if (bAllow == true && apl.val().trim() == "")
{
showDialog();
showDialog().done(function() {
return true; // wanna return true, but not success
}).fail(function() {
return false; //wanna return false, but not success
});
return false; //stop it to execute to next line
}
return bAllow; //success return }
function showDialog(){
var def = $.Deferred();
var modPop = '<div id="diaCom" title="Information?"><p>something something</p></div>';
$("#diaCom").remove();
$(modPop).appendTo('body');
$("#diaCom").dialog({
resizable: false,
draggable: false,
height:150,
width:300,
modal: true,
buttons: …Run Code Online (Sandbox Code Playgroud) 您可以在许多帖子(Post 1,Post2)中找到解决方案,但他们的解决方案对我不起作用.
这是我编写的普通jquery对话框.
$("#dialog").dialog({
autoOpen:false,
buttons:{
"ok":function(){
$(this).dialog("close");
return true;
},
"cancel":function(){
$(this).dialog("close"); return false;
}
}
});
Run Code Online (Sandbox Code Playgroud)
我将用代码打开对话框:
var returnVal=$("#dialog").dialog("open");
Run Code Online (Sandbox Code Playgroud)
我需要返回false,如果用户点击"取消"并返回,true如果用户点击"确定".
var returnVal=$("#dialog").dialog("open");
Run Code Online (Sandbox Code Playgroud)
我需要returnVal返回boolean值(true/false),但它返回javascript object.