Bootstrapモーダルを使用して確認ダイアログを作成するための次のコードがあります。これはクロージャー内で呼び出されると想定されています。
this.events.register(this, function(e) {
this.makeModal(e);
// this is what used to work for me
/*
if (confirm('Are you sure?')) {
alert(e.data);
} else {
// DO NOTHING
}
*/
});
makeModal: function(e) {
//...
$(btnCancel).on("click", $(modal).modal('hide'));
$(btnConfirm).on("click", alert('confirm'));
}
ボタンは、btnCancelとbtnConfirmの2つだけです。問題は、外部関数が呼び出された後、内部アラートもすぐにトリガーされ、確認ダイアログが役に立たなくなることです。どうすればこれを修正できますか?特定の理由で、ブートボックスなどのライブラリを使用できません。
または、このモーダルから「はい」または「いいえ」を返すことはできますか?もしそうなら、どうすればそれを行うことができますか?
前もって感謝します!
編集:これは、はいまたはいいえを返す私の貧弱な試みです:
makeModal: function(e) {
//...
var choice;
$(btnCancel).on("click", choice = false);
$(btnConfirm).on("click", choice = true);
return choice;
}