Sweetalert: Comment gérer l'action du bouton d'annulation

Créé le 25 janv. 2017  ·  7Commentaires  ·  Source: t4t5/sweetalert

Nous avons un paramètre de rappel pour le bouton de confirmation, mais comment pouvons-nous utiliser un rappel pour le bouton d'annulation ?

Commentaire le plus utile

Vous pouvez trouver un exemple de la façon de procéder dans la documentation : http://t4t5.github.io/sweetalert/

"... et en passant un paramètre, vous pouvez exécuter autre chose pour 'Annuler'."

swal({
  title: "Are you sure?",
  text: "You will not be able to recover this imaginary file!",
  type: "warning",
  showCancelButton: true,
  confirmButtonColor: "#DD6B55",
  confirmButtonText: "Yes, delete it!",
  cancelButtonText: "No, cancel plx!",
  closeOnConfirm: false,
  closeOnCancel: false
},
function(isConfirm){
  if (isConfirm) {
    swal("Deleted!", "Your imaginary file has been deleted.", "success");
  } else {
    swal("Cancelled", "Your imaginary file is safe :)", "error");
  }
});

Tous les 7 commentaires

Je vois dans le code qu'il y a un paramètre doneFunction .

J'essaie ce code mais il semble que mon rappel soit complètement ignoré, qu'est-ce que je fais mal ?

(new Promise((resolve, reject) => {
  swal({
    title: "Delete data?",
    text: "Deleted data will be lost.",
    type: "warning",
    showCancelButton: true,
    confirmButtonColor: "#DD6B55",
    confirmButtonText: "Delete",
    closeOnConfirm: false,
    html: false,
    doneFunction(res) {
      if (res) {
        resolve();
      } else {
        reject();
      }
    }
  });
})).then(() => console.log("Resolved"), () => console.log("Rejected"))

Même chose pour moi. Ma fonction de rappel est appelée lorsque le bouton ok est cliqué, mais pas pour le bouton annuler.

@jeffmath je suis passé à https://github.com/limonte/sweetalert2 pour résoudre ce problème

Vous pouvez trouver un exemple de la façon de procéder dans la documentation : http://t4t5.github.io/sweetalert/

"... et en passant un paramètre, vous pouvez exécuter autre chose pour 'Annuler'."

swal({
  title: "Are you sure?",
  text: "You will not be able to recover this imaginary file!",
  type: "warning",
  showCancelButton: true,
  confirmButtonColor: "#DD6B55",
  confirmButtonText: "Yes, delete it!",
  cancelButtonText: "No, cancel plx!",
  closeOnConfirm: false,
  closeOnCancel: false
},
function(isConfirm){
  if (isConfirm) {
    swal("Deleted!", "Your imaginary file has been deleted.", "success");
  } else {
    swal("Cancelled", "Your imaginary file is safe :)", "error");
  }
});

@ t4t5 Grâce à isConfirm, nous pouvons vérifier si la réponse de l'utilisateur était le bouton Confirmer ou autre chose. Mais pourriez-vous s'il vous plaît me dire comment vérifier si le bouton cliqué était un bouton "Confirmer" ou un bouton "Annuler" ou un bouton "Fermer" car j'utilise également le bouton Annuler pour rediriger ailleurs, mais le bouton de fermeture ferme simplement l'alerte ?

Le problème réel est que dans sweetalert v1.x, le gestionnaire d'annulation vérifie que le rappel commence par function( https://github.com/t4t5/sweetalert/blob/v1.1.3/lib/modules/handle- click.js#L119.
Donc, si cette condition n'est pas remplie, comme l'exemple de @Zorgatone utilise doneFunction( le rappel sera simplement ignoré.

Bonne prise @gualopezb. Cela fonctionne depuis toujours et il a soudainement cessé de fonctionner.

Le correctif :

-    }, (code) => {
+    }, function(code) {

Je suppose qu'un changement dans ma configuration Babel est en jeu.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

blackrosezy picture blackrosezy  ·  6Commentaires

Untit1ed picture Untit1ed  ·  5Commentaires

mouro001 picture mouro001  ·  3Commentaires

AlexV525 picture AlexV525  ·  4Commentaires

xgqfrms-GitHub picture xgqfrms-GitHub  ·  4Commentaires