alloyoussef
alloyoussef

Reputation: 777

Using bootbox the show event is not fired

I'm not able to catch the show event for the bootbox.confirm dialog in order to do some css adjustments to the dialog before showing it.

I tried things like the followings but didn't succeed:

$(document).on("show.bs.modal", function (event) {...});
$(document).on("show", function (event) {...});
$(document).on("show", ".bootbox", function (event) {...});

Upvotes: 13

Views: 18555

Answers (3)

alloyoussef
alloyoussef

Reputation: 777

I would also prefer to use a global function like:

function bootbox_confirm(msg, callback_success, callback_cancel) {
    var d = bootbox.confirm({message:msg, show:false, callback:function(result) {
        if (result)
            callback_success();
        else if(typeof(callback_cancel) == 'function')
            callback_cancel();
    }});

    d.on("show.bs.modal", function() {
        //css afjustment for confirm dialogs
        alert("before show");
    });
    return d;
}

and call it this way:

bootbox_confirm("my message", function(){alert('ok')}, function(){alert('cancel')}).modal('show');

or when no logic for cancel:

bootbox_confirm("my message", function(){alert('ok')}).modal('show');

Upvotes: 3

codephobia
codephobia

Reputation: 1590

This should work for you using Bootbox 4.x.x and Bootstrap 3.x.x:

var box = bootbox.dialog({
  message: '',
  title: '',
  buttons: {},
  show: false
});

box.on("shown.bs.modal", function() {
  alert('it worked!');
});

box.modal('show');

or like this:

$(document).on("shown.bs.modal", function (event) {...});

Upvotes: 43

Nayeem Mansoori
Nayeem Mansoori

Reputation: 831

you can do like this:

var dialog = bootbox.dialog("foo", [], {show: false});

dialog.on("shown", function() {
 //
});

dialog.modal("show");

Upvotes: 2

Related Questions