Kami memiliki parameter panggilan balik untuk tombol konfirmasi, tetapi bagaimana kami dapat menggunakan panggilan balik untuk tombol batal?
Saya melihat dalam kode ada parameter doneFunction
.
Saya mencoba kode ini tetapi sepertinya panggilan balik saya diabaikan sepenuhnya, apa yang saya lakukan salah?
(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"))
Hal yang sama untuk saya. Fungsi panggilan balik saya dipanggil ketika tombol ok diklik, tetapi tidak untuk tombol batal.
@jeffmath saya beralih ke https://github.com/limonte/sweetalert2 untuk menyelesaikannya
Anda dapat menemukan contoh cara melakukannya di dokumentasi: http://t4t5.github.io/sweetalert/
"... dan dengan melewatkan parameter, Anda dapat menjalankan sesuatu yang lain untuk 'Batal'."
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 Melalui isConfirm, kami dapat memeriksa apakah respons pengguna adalah tombol Konfirmasi atau yang lainnya. Tetapi bisakah Anda memberi tahu saya cara memeriksa apakah tombol yang diklik adalah tombol "Konfirmasi" atau tombol "Batal" atau tombol "Tutup" karena saya menggunakan tombol Batal juga untuk mengarahkan ke tempat lain tetapi tombol tutup hanya menutup peringatan?
Masalah sebenarnya adalah bahwa di sweetalert v1.x penangan pembatalan memeriksa panggilan balik yang dimulai dengan function(
https://github.com/t4t5/sweetalert/blob/v1.1.3/lib/modules/handle- klik.js#L119.
Jadi jika kondisi itu tidak terpenuhi, seperti contoh @Zorgatone menggunakan doneFunction(
callback akan diabaikan.
Tangkapan bagus @gualopezb. Saya sudah memiliki ini bekerja selamanya dan tiba-tiba berhenti bekerja.
Perbaiki:
- }, (code) => {
+ }, function(code) {
Saya menduga beberapa perubahan dalam konfigurasi Babel saya sedang bermain.
Komentar yang paling membantu
Anda dapat menemukan contoh cara melakukannya di dokumentasi: http://t4t5.github.io/sweetalert/
"... dan dengan melewatkan parameter, Anda dapat menjalankan sesuatu yang lain untuk 'Batal'."