確認ボタンのコールバックパラメータがありますが、キャンセルボタンのコールバックをどのように使用できますか?
コードにdoneFunction
パラメーターがあることがわかります。
このコードを試していますが、コールバックが完全に無視されているようです。何が間違っているのでしょうか。
(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"))
私にとっても同じことです。 コールバック関数は、[OK]ボタンがクリックされたときに呼び出されますが、キャンセルボタンは呼び出されません。
@jeffmathそれを解決するためにhttps://github.com/limonte/sweetalert2に切り替えました
これを行う方法の例は、ドキュメントにあります: http :
「...そしてパラメータを渡すことで、「キャンセル」のために何か他のものを実行することができます。」
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 isConfirmを使用すると、ユーザーの応答が[確認]ボタンか他の何かであったかどうかを確認できます。 ただし、[キャンセル]ボタンを使用して別の場所にリダイレクトしているのに、[閉じる]ボタンを使用するとアラートが閉じられるため、クリックしたボタンが[確認]ボタン、[キャンセル]ボタン、[閉じる]ボタンのいずれであるかを確認する方法を教えてください。
実際の問題は、sweetalert v1.xでは、キャンセルハンドラーがfunction(
始まるコールバックをチェックしていることですhttps://github.com/t4t5/sweetalert/blob/v1.1.3/lib/modules/handle- click.js#L119。
したがって、 @ Zorgatoneの例ではdoneFunction(
を使用しているため、その条件が満たされない場合、コールバックは無視されます。
グッドキャッチ@gualopezb。 私はこれを永遠に機能させてきましたが、突然機能しなくなりました。
Le修正:
- }, (code) => {
+ }, function(code) {
Babelの設定に変更が加えられていると思います。
最も参考になるコメント
これを行う方法の例は、ドキュメントにあります: http :
「...そしてパラメータを渡すことで、「キャンセル」のために何か他のものを実行することができます。」