Utiliser Bootstrap pour remplacer la fenêtre de confirmation Javascript

Changer l’aspect de la fenêtre de confirmation Javascript avec une modal Bootstrap.

Souvent dans une application lorsqu’on a une fonction qui va supprimer quelque chose, on demande confirmation par sécurité. Dans le développement web, cela peut se faire par exemple avec confirm() de Javascript, déclenché par le clic sur un lien avec l’attribut onclick de la balise a. Ceci est bien old-school pour plusieurs raisons que je ne parlerai pas ici.

Confirmation dans Google Chrome
Confirmation dans Google Chrome

Ce court billet met en place une boîte de dialogue de confirmation utilisant Bootstrap, apportant un aspect un peu plus joli que la fenêtre système de confirmation.

$(function() {
	$('a[data-confirm]').click(function(ev) {
		var href = $(this).attr('href');
		
		if (!$('#dataConfirmModal').length) {
			$('body').append('<div id="dataConfirmModal" class="modal" role="dialog" aria-labelledby="dataConfirmLabel" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h3 id="dataConfirmLabel">Merci de confirmer</h3></div><div class="modal-body"></div><div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">Non</button><a class="btn btn-danger" id="dataConfirmOK">Oui</a></div></div></div></div>');
		}
		$('#dataConfirmModal').find('.modal-body').text($(this).attr('data-confirm'));
		$('#dataConfirmOK').attr('href', href);
		$('#dataConfirmModal').modal({show:true});
		
		return false;
	});
});

Comme on le voit dans le code jQuery, cette action est déclenchée lors d’un clic sur un élément a possédant un attribut data-confirm qui par ailleurs servira de titre à la fenêtre modale. Voici un exemple de lien qui ouvre la modale :

<a href="" data-confirm="Etes-vous certain de vouloir supprimer?">Suppression</a>
Confirmation modale avec Bootstrap
Confirmation modale avec Bootstrap

Testez vous-même avec l’exemple ci-contre : bootstrap-modal.zip

9 pensées sur “Utiliser Bootstrap pour remplacer la fenêtre de confirmation Javascript”

  1. Excellent !!!! merci beaucoup .
    pour utiliser ajax je ajouter :

    $(function(){
    $(document).on('click','#dataConfirmOK',function(e) {
    e.preventDefault();
    $('#dataConfirmModal').modal('hide');
    $.ajax($(this).attr("href"),{success:MyCallbackFunction})
    })
    })

  2. Bonjour, lors du clic sur la confirmation ‘Oui’, ma page est bien appelée mais mon modal ne se ferme pas…
    Avez- vous de suggestions?

    1. Cet article explique comment remplacer la fenêtre de base par une modal, le clic sur le bouton « Oui » fait partie de la logique arrivant ensuite, donc libre à chacun de faire ce que bon lui semble.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *