次のコードを使用して、jquery ui ダイアログによるデフォルトの JavaScript 確認を使用します。
jQuery.extend({
confirm: function(message, title, okAction) {
jQuery("<div></div>").dialog({
// Remove the closing 'X' from the dialog
open: function(event, ui) { jQuery(".ui-dialog-titlebar-close").hide(); },
buttons: {
"Ok": function() {
jQuery(this).dialog("close");
return true;
},
"Cancel": function() {
jQuery(this).dialog("close");
return false;
}
},
close: function(event, ui) { jQuery(this).remove(); },
resizable: false,
title: title,
modal: true
}).text(message);
}
});
jQuery.confirm(
"LogOut",
"Do you want to log out",
function() {
});
ここで、ログアウト アクションで同じコードを使用する必要があります。コード内のJavaScript確認を置き換えることができるように。
<a class="homeImage" onclick="return confirm('Do you want to logout?');" href="/future/myhome/head?$event=logout">LOG OUT</a>
私が今直面している問題は、確認を別の関数に置き換え、その戻り値が決定を下すのを待つと、ダイアログボックスが変数に値を返さないことです。これらの 2 つの関数は同時に実行されます (アラートが表示されますが、href ターゲットにも送信されます)。メソッドが true または false の値を返し、href ターゲットに進む方法はありますか。
参考: jQuery Extend , jQuery UI Replacement for alert
related question: js override confirm