javascript – 在jquery中创建确认对话框
作者:互联网
$("#first").dialog({ width: 304, modal: true,
beforeclose: function (e, ui)
{
$("#confirm").dialog({ width: 500, modal: true,
buttons: {
"Confirm": function () {
document.location.href = "/Home/Index";
},
"Cancel": function () {
$(this).dialog('close');
return false;
}
}
});
}
});
#first对话框关闭,无需等待#confirm对话框打开.我知道javascript的confirm()函数,但我想在这种情况下使用对话框.我怎样才能做到这一点?
解决方法:
beforeClose(event, ui)
Triggered when a dialog is about to close. If canceled, the dialog will not close.
所以你希望你的beforeClose处理程序返回false以防止对话框关闭:
beforeClose: function(e, ui) {
$("#confirm").dialog({ width: 500, modal: true, /* ... */ });
return false;
}
您的“确认”按钮会更改位置,因此您不必担心beforeClose处理程序会阻止第二个对话框关闭第一个对话框.如果你没有改变页面位置,那么你需要一些类型的标志来保持beforeClose防止所有关闭;像这样的东西,例如:
beforeclose: function(e, ui) {
var $dlg = $(this);
if($dlg.data('can-close')) {
$dlg.removeData('can-close');
return true;
}
$("#confirm").dialog({
//...
buttons: {
Confirm: function() {
$(this).dialog('close');
$dlg.data('can-close', true);
$dlg.dialog('close');
},
Cancel: function() {
$(this).dialog('close');
}
}
});
return false;
}
演示:http://jsfiddle.net/ambiguous/jYZpD/
标签:jquery,javascript,jquery-ui,jquery-ui-dialog 来源: https://codeday.me/bug/20190716/1480800.html