Sweetalert: So handhaben Sie die Aktion der Schaltfläche zum Abbrechen

Erstellt am 25. Jan. 2017  ·  7Kommentare  ·  Quelle: t4t5/sweetalert

Wir haben einen Callback-Parameter für die Bestätigungsschaltfläche, aber wie können wir einen Rückruf für die Abbrechen-Schaltfläche verwenden?

Hilfreichster Kommentar

Ein Beispiel dafür finden Sie in der Dokumentation: http://t4t5.github.io/sweetalert/

"... und durch Übergabe eines Parameters können Sie etwas anderes für 'Abbrechen' ausführen."

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");
  }
});

Alle 7 Kommentare

Ich sehe im Code einen doneFunction Parameter.

Ich versuche diesen Code, aber mein Rückruf scheint komplett ignoriert zu werden. Was mache ich falsch?

(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"))

Bei mir das Gleiche. Meine Callback-Funktion wird beim Klicken auf die OK-Schaltfläche aufgerufen, jedoch nicht bei der Abbrechen-Schaltfläche.

@jeffmath Ich bin zu https://github.com/limonte/sweetalert2 gewechselt, um das zu lösen

Ein Beispiel dafür finden Sie in der Dokumentation: http://t4t5.github.io/sweetalert/

"... und durch Übergabe eines Parameters können Sie etwas anderes für 'Abbrechen' ausführen."

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 Durch isConfirm können wir überprüfen, ob die Benutzerantwort die Schaltfläche Bestätigen oder etwas anderes war. Aber könnten Sie mir bitte sagen, wie ich überprüfen kann, ob es sich bei der angeklickten Schaltfläche um eine Schaltfläche "Bestätigen" oder "Abbrechen" oder "Schließen" handelt, da ich die Schaltfläche Abbrechen auch verwende, um an eine andere Stelle umzuleiten, aber die Schaltfläche Schließen nur die Warnung schließt?

Das eigentliche Problem ist, dass in sweetalert v1.x der Cancel-Handler prüft, ob der Callback mit function( beginnt https://github.com/t4t5/sweetalert/blob/v1.1.3/lib/modules/handle- click.js#L119.
Wenn diese Bedingung also nicht erfüllt ist, wie im Beispiel von doneFunction( der Rückruf einfach ignoriert.

Guter Fang @gualopezb. Ich habe das schon ewig laufen lassen und plötzlich hat es nicht mehr funktioniert.

Abhilfe:

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

Ich vermute, dass eine Änderung in meiner Babel-Konfiguration im Spiel ist.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

jamieson99 picture jamieson99  ·  3Kommentare

Lusitaniae picture Lusitaniae  ·  4Kommentare

yrshaikh picture yrshaikh  ·  4Kommentare

mateuszjarzewski picture mateuszjarzewski  ·  4Kommentare

sastrahost picture sastrahost  ·  5Kommentare