Sweetalert: キャンセルボタンアクションの処理方法

作成日 2017年01月25日  ·  7コメント  ·  ソース: t4t5/sweetalert

確認ボタンのコールバックパラメータがありますが、キャンセルボタンのコールバックをどのように使用できますか?

最も参考になるコメント

これを行う方法の例は、ドキュメントにあります: 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");
  }
});

全てのコメント7件

コードに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の設定に変更が加えられていると思います。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

blackrosezy picture blackrosezy  ·  6コメント

xgqfrms-GitHub picture xgqfrms-GitHub  ·  4コメント

vmitchell85 picture vmitchell85  ·  6コメント

AlexV525 picture AlexV525  ·  4コメント

mateuszjarzewski picture mateuszjarzewski  ·  4コメント