چرا مقدار برگشتی sweetAlert همواره یک مقدار است؟
درود و عرض ادب .
نیاز به تاییدیه کاربر جهت حذف داده ها دارم اما به طرز عجیبی تابع sweetAlert من همواره یک مقدار را برمی گرداندد علیرغم استفاده مستقیم از مثالهای سایت sweetalert
این سورس تابع من است که همواره yes را برمی گرداند در حالیکه با انتخاب دکمه cancel باید no را برگرداند چرا مقدار هر دو دکمه yes و no یک مقدار را برمی گردانند؟؟
<html>
<head>
<script type="text/javascript" language="javascript" src="sweetalert2.min.js"></script>
<link rel="stylesheet" type="text/css" href="sweetalert2.css" />
<script type="text/javascript" language="javascript">
function kk()
{
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes'
}).then((result) => {
if (result) alert('Yes'); else alert('no');
}).catch(function(reason){
alert('No');
});
}
</script>
</head>
<body>
<input type="button" id="pop" value="click me" onclick="kk()">
</body>
پاسخ هوش مصنوعی
مشکل شما به نحوه چک کردن نتیجه در callback مربوط می شود. در حال حاضر، شما فقط از `if (result)` استفاده کرده اید که نتیجه را به درستی بررسی نمی کند. در واقع `result` یک شی است و شما باید بررسی کنید که آیا کاربر دکمه تأیید (`confirm`) یا دکمه لغو (`cancel`) را فشار داده است. برای این کار باید از `result.isConfirmed` استفاده کنید.
کد اصلاح شده شما به صورت زیر خواهد بود:
<html>
<head>
<script type="text/javascript" language="javascript" src="sweetalert2.min.js"></script>
<link rel="stylesheet" type="text/css" href="sweetalert2.css" />
<script type="text/javascript" language="javascript">
function kk()
{
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes'
}).then((result) => {
if (result.isConfirmed) alert('Yes'); else alert('No');
});
}
</script>
</head>
<body>
<input type="button" id="pop" value="click me" onclick="kk()">
</body>
</html>
با این تغییر، حالا تابع شما به درستی مقدار برگشتی را بر اساس انتخاب کاربر نشان خواهد داد.
مقدار پارامتر result از then میاد وقتی swal به پرانتز انتهایی میرسد اگر پشت سر آن .then بیاید حاصل دکمه انتخاب شده در متغیر جلو then یعنی result ذخیره میشود حالا اگر result مقدار true باشد یعنی دکمه تایید (بله یا ok) انتخاب شده و در غیر اینصورت دکمه لغو (cancel) انتخاب شده اما در سوال من این اتفاق در asp نمی افتد ولی در یک فایل ساده html اتفاق می افتد
در نهایت مشکل رو خودم از سایت Sweetalert یافتم جواب شد این
then((result) => {
if (result.value)
document.getElementById("HidDel").value=1;
else if (result.dismiss === Swal.DismissReason.cancel) {
document.getElementById("HidDel").value=0;
});
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- حذف فایلها و دستورات Css و JavaScript اضافی
- جمع کردن (Collapse) منوی جانبی موقع لود فرم در پنل AdminLte
- دلیل خطای Identifier 'X' has already been declared در جی کویری چیست ؟
- جدا کردن سه رقم سه رقم اعداد در input با جاوااسکریپت
- محدود کردن تایپ عدد یا حروف با جاوا اسکریپت
- مقایسه بین فریم ورک های Angular و React.js و Vue js
- نمایش پیغام گرافیکی با جی کویری
- تفاوت Class Component و Functional Component در React.js چیست ؟
- پراپس (Props) در React.js چیست ؟
- دریافت کمترین و بیشترین مقدار با پلاگین ui-jquery