Imitation d’une confirmation () à l’aide de la boîte de dialog jqueryUI

Je voudrais imiter une confirmation JavaScript standard () à l’aide d’une boîte de dialog jQueryUI. Je pensais à quelque chose comme ce qui suit, mais je ne comprends évidemment pas comment cela devrait fonctionner. Aucune suggestion? Je vous remercie

return $("#dialog-cancel").dialog("open"); $("#dialog-cancel").dialog({ autoOpen: false,height: 400,width: 350,modal: true, open: function(event, ui){}, buttons: {'OK': function(){$(this).dialog("close");return true;},'CANCEL': function() {$(this).dialog("close");return false;}} }); 

Le duplicata n’est pas vraiment utile. Je suis désolé pour ça.

Sur la base de cette réponse , voici ce que je ferais:

  • créer une fonction qui créera un dialog modal de base avec un message et des boutons OK / Annuler

  • accepte deux callbacks pour les deux boutons exécutés lorsque l’utilisateur clique dessus

L’avantage est qu’il ne bloque pas l’intégralité du navigateur avec une boucle infinie, comme dans la réponse. L’option modal de la boîte de dialog de l’interface utilisateur jQuery bloque simplement la page en cours.

Voici le code:

 function confirmDialog(message, onOK, onCancel) { $('
' + message + '
').dialog({ modal: true, buttons : { "OK" : function() { $(this).dialog("close"); // if there is a callback, execute it if (onOK && $.isFunction(onOK)) { onOK(); } // destroy the confirmation dialog $(this).dialog("destroy"); }, "Cancel" : function() { $(this).dialog("close"); if (onCancel && $.isFunction(onCancel)) { onCancel(); } $(this).dialog("destroy"); } } }); }

Et vous pouvez l’utiliser de cette façon:

 $('button').click(function(e) { var okHandler = function() { alert('ok'); }; confirmDialog('Do you really want ?', okHandler); }); 

DEMO