Sweetalert: كيفية التعامل مع إجراء زر الإلغاء

تم إنشاؤها على ٢٥ يناير ٢٠١٧  ·  7تعليقات  ·  مصدر: t4t5/sweetalert

لدينا معامل رد الاتصال لزر التأكيد ، ولكن كيف يمكننا استخدام رد الاتصال لزر الإلغاء؟

التعليق الأكثر فائدة

يمكنك العثور على مثال عن كيفية القيام بذلك في الوثائق: http://t4t5.github.io/sweetalert/

"... ومن خلال تمرير معلمة ، يمكنك تنفيذ شيء آخر لـ 'إلغاء'."

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

نفس الشيء بالنسبة لي. يتم استدعاء وظيفة رد الاتصال الخاصة بي عند النقر فوق الزر موافق ، ولكن ليس لزر الإلغاء.

jeffmath انتقلت إلى https://github.com/limonte/sweetalert2 لحل ذلك

يمكنك العثور على مثال عن كيفية القيام بذلك في الوثائق: http://t4t5.github.io/sweetalert/

"... ومن خلال تمرير معلمة ، يمكنك تنفيذ شيء آخر لـ 'إلغاء'."

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. لقد كان هذا يعمل إلى الأبد وفجأة توقف عن العمل.

لو فيكس:

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

أظن أن بعض التغييرات في تكوين Babel قيد التشغيل.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

vmitchell85 picture vmitchell85  ·  6تعليقات

daftspunk picture daftspunk  ·  4تعليقات

mateuszjarzewski picture mateuszjarzewski  ·  4تعليقات

waldyrious picture waldyrious  ·  5تعليقات

jamieson99 picture jamieson99  ·  3تعليقات