Examples
The examples below attempt to demonstrate the myriad ways in which you can use Bootbox.
Have an example you'd like to add? Open a new issue, or add a pull-request with your example added to this page.
Alert
- Basic usage
-
bootbox.alert("This is the default alert!");
- Basic usage, with callback
-
bootbox.alert("This is an alert with a callback!", function(){ console.log('This was logged in the callback!'); });
- Basic usage, using HTML element, with callback
-
let template = $('#alert-message-template'); bootbox.alert(template, function () { console.log('This was logged in the callback!'); });
- Basic usage, using options object
-
bootbox.alert({ message: "This is an alert with a callback!", callback: function () { console.log('This was logged in the callback!'); } });
- Small dialog
-
Also applies to: Confirm, Prompt, Custom
bootbox.alert({ message: "This is the small alert!", size: 'small' /* or 'sm' */ });
Requires Bootstrap 3.1.0 or newer.
- Large dialog
-
Also applies to: Confirm, Prompt, Custom
bootbox.alert({ message: "This is the large alert!", size: 'large' /* or 'lg' */ });
Requires Bootstrap 3.1.0 or newer.
- Extra-large dialog
-
Also applies to: Confirm, Prompt, Custom
bootbox.alert({ message: "This is the extra-large alert!", size: 'extra-large' /* or 'xl' */ });
Requires Bootstrap 4.2.0 or newer.
- Custom CSS class (using Animate.css)
-
Also applies to: Confirm, Prompt, Custom
bootbox.alert({ message: "This is an alert with additional classes!", className: 'rubberBand animated' });
- Dismiss with overlay click
-
Also applies to: Confirm, Prompt, Custom
bootbox.alert({ message: "This alert can be dismissed by clicking on the background!", backdrop: true });
- Using a locale
-
Also applies to: Confirm, Prompt, Custom
bootbox.alert({ message: "This alert uses the Arabic locale!", locale: 'ar' });
Confirm
- Basic usage
-
bootbox.confirm("This is the default confirm!", function(result){ console.log('This was logged in the callback: ' + result); });
- With alternate button text and color
-
Also applies to: Alert, Prompt, Custom
bootbox.confirm({ message: "This is a confirm with custom button text and color! Do you like it?", buttons: { confirm: { label: 'Yes', className: 'btn-success' }, cancel: { label: 'No', className: 'btn-danger' } }, callback: function (result) { console.log('This was logged in the callback: ' + result); } });
-
Also applies to: Alert, Prompt, Custom
bootbox.confirm({ title: "Destroy planet?", message: "Do you want to activate the Deathstar now? This cannot be undone.", buttons: { cancel: { label: '<i class="fa fa-times"></i> Cancel' }, confirm: { label: '<i class="fa fa-check"></i> Confirm' } }, callback: function (result) { console.log('This was logged in the callback: ' + result); } });
- Demoing all locales
-
Also applies to: Alert, Prompt, Custom
let locale = $('#choose-locale').val(); bootbox.confirm({ message: "This confirm uses the selected locale. Were the labels what you expected?", locale: locale, callback: function (result) { console.log('This was logged in the callback: ' + result); } });
Prompt
Please note: prompt requires the title option (when using the options object). You may use the message option, but the prompt result will not include any form inputs from your message.
- Basic usage
-
bootbox.prompt("This is the default prompt!", function(result){ console.log(result); });
If you want to style the input, you can target the .bootbox-input-text class.
- Vertically Centered
-
bootbox.prompt({ title: "This is a prompt, vertically centered!", centerVertical: true, callback: function(result){ console.log(result); } });
- With a custom locale
-
let locale = { OK: 'I Suppose', CONFIRM: 'Go Ahead', CANCEL: 'Maybe Not' }; bootbox.addLocale('custom', locale); bootbox.prompt({ title: "This is a prompt with a custom locale! What do you think?", locale: 'custom', callback: function (result) { console.log('This was logged in the callback: ' + result); } });
- Prompt with checkbox
-
bootbox.prompt({ title: "This is a prompt with a set of checkbox inputs!", value: ['1', '3'], inputType: 'checkbox', inputOptions: [{ text: 'Choice One', value: '1' }, { text: 'Choice Two', value: '2' }, { text: 'Choice Three', value: '3' }], callback: function (result) { console.log(result); } });
Checkboxes are nested in an element with the class .bootbox-checkbox-list. If you want to style the individual checkbox inputs, you can target the .bootbox-input-checkbox class.
- Prompt with radio buttons and a message value
-
bootbox.prompt({ title: "This is a prompt with a set of radio inputs!", message: '<p>Please select an option below:</p>', inputType: 'radio', inputOptions: [{ text: 'Choice One', value: '1' }, { text: 'Choice Two', value: '2' }, { text: 'Choice Three', value: '3' }], callback: function (result) { console.log(result); } });
Radio buttons are nested in an element with the class .bootbox-radiobutton-list. If you want to style the individual radio inputs, you can target the .bootbox-input-radio class.
When using the radio option, the first radio button will be checked if value is missing or does not match an inputOptions value.
- Prompt with date
-
Requires browser support: https://caniuse.com/input-datetime
bootbox.prompt({ title: "This is a prompt with a date input!", inputType: 'date', callback: function (result) { console.log(result); } });
If you want to style the input, you can target the .bootbox-input-date class.
- Prompt with email
-
Requires browser support: https://caniuse.com/mdn-html_elements_input_type_email
bootbox.prompt({ title: "This is a prompt with an email input!", inputType: 'email', callback: function (result) { console.log(result); } });
If you want to style the input, you can target the .bootbox-input-email class.
- Prompt with number
-
Requires browser support: https://caniuse.com/input-number
bootbox.prompt({ title: "This is a prompt with a number input!", inputType: 'number', callback: function (result) { console.log(result); } });
If you want to style the input, you can target the .bootbox-input-number class.
- Prompt with password
-
bootbox.prompt({ title: "This is a prompt with a password input!", inputType: 'password', callback: function (result) { console.log(result); } });
If you want to style the input, you can target the .bootbox-input-password class.
- Prompt with select
-
bootbox.prompt({ title: "This is a prompt with select!", inputType: 'select', inputOptions: [{ text: 'Choose one...', value: '' }, { text: 'Choice One', value: '1' }, { text: 'Choice Two', value: '2' }, { text: 'Choice Three', value: '3' }], callback: function (result) { console.log(result); } });
If you want to style the select, you can target the .bootbox-input-select class.
- Prompt with select & multiple
-
bootbox.prompt({ title: "This is a prompt with a multi-select!", inputType: 'select', multiple: true, value: ['1','3'], inputOptions: [{ text: 'Choose one...', value: '' }, { text: 'Choice One', value: '1' }, { text: 'Choice Two', value: '2' }, { text: 'Choice Three', value: '3' }], callback: function (result) { console.log(result); } });
If you want to style the select, you can target the .bootbox-input-select class.
- Prompt with textarea
-
bootbox.prompt({ title: "This is a prompt with a textarea!", inputType: 'textarea', callback: function (result) { console.log(result); } });
If you want to style the textarea, you can target the .bootbox-input-textarea class.
- Prompt with time
-
Requires browser support: https://caniuse.com/input-datetime
bootbox.prompt({ title: "This is a prompt with a time input!", inputType: 'time', callback: function (result) { console.log(result); } });
If you want to style the input, you can target the .bootbox-input-time class.
- Prompt with range
-
Requires browser support: https://caniuse.com/input-range
bootbox.prompt({ title: "This is a prompt with a range input!", inputType: 'range', min: 0, max: 100, step: 5, value: 35, callback: function (result) { console.log('This was logged in the callback: ' + result); } });
If you want to style the input, you can target the .bootbox-input-range class.
Custom Dialogs
Please note: Custom dialogs accept only one argument: an options object. The only required property of the options object is message.
- Custom dialog as "loading" overlay
-
let dialog = bootbox.dialog({ message: '<p class="text-center mb-0"><i class="fas fa-spin fa-cog"></i> Please wait while we do something...</p>', closeButton: false }); // do something in the background dialog.modal('hide');
- Custom dialog, using init
-
Also applies to: Alert, Confirm, Prompt
let dialog = bootbox.dialog({ title: 'A custom dialog with init', message: '<p><i class="fas fa-spin fa-spinner"></i> Loading...</p>' }); dialog.init(function(){ setTimeout(function(){ dialog.find('.bootbox-body').html('I was loaded after the dialog was shown!'); }, 3000); });
-
let dialog = bootbox.dialog({ title: 'A custom dialog with buttons and callbacks', message: "<p>This dialog has buttons. Each button has it's own callback function.</p>", size: 'large', buttons: { cancel: { label: "I'm a cancel button!", className: 'btn-danger', callback: function(){ console.log('Custom cancel clicked'); } }, noclose: { label: "I don't close the modal!", className: 'btn-warning', callback: function(){ console.log('Custom button clicked'); return false; } }, ok: { label: "I'm an OK button!", className: 'btn-info', callback: function(){ console.log('Custom OK clicked'); } } } });