BootstrapDialog を呼び出して確認ポップアップを作成する独自のメソッドを作成しようとしています。ユーザーが「確認」を選択すると、メソッドは true を返し、jsf アクションの呼び出しを続行します。私がこれまでに持っているコード:
/**
* Confirm window
*
* @param {type} message
* @param {type} callback
* @returns {undefined}
*/
BootstrapDialog.confirmation = function(title, message) {
var callback = function(result) {
console.log(result);
return result;
};
var b = new BootstrapDialog({
title: title,
message: message,
closable: false,
data: {
'callback': callback
},
buttons: [{
label: 'Cancel',
action: function(dialog) {
typeof dialog.getData('callback') === 'function' && dialog.getData('callback')(false);
dialog.close();
}
}, {
label: 'Continue',
cssClass: 'btn-primary',
action: function(dialog) {
typeof dialog.getData('callback') === 'function' && dialog.getData('callback')(true);
dialog.close();
}
}]
}).open();
return callback;
};
私はjsを次のように呼び出しています:
<h:commandButton type="button" value="Exit" action="myaction" styleClass="btn btn-default" onclick="return BootstrapDialog.confirmation('Data unsaved', 'Are you sure you want to continue');"/>
ダイアログは問題なくポップアップします。問題は、true / false が返されないことです。この例の後に js をモデル化しました: http://nakupanda.github.io/bootstrap3-dialog/