دسته بندی ها
13:44 1399/08/12

نحوه اعتبار سنجی فیلدها با جی کویری ایجکس

مشخصات سوال کننده :
کاربر : Kpa91     امتیاز کاربر : 12     رتبه کاربر : 59
دسته بندی : Asp.net Web Form جاوا اسکریپت جی کوئری

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 5212
پاسخ دهنده : fateme 02:36 1399/08/13

اعتبارسنجی فیلدها توسط جی کوئری

قطعا برای اینکه صفحه شما رفرش نشود باید از اعتبارسنجی های سمت کلاینت استفاده بشه. این اعتبارسنجی توسط جاوا اسکریپت با جی کوئری انجام می شود. شما باید نحوه کار با ایجکس رو یاد بگیرید در مرحله اول. البته انجام این کار خیلی ساده است. براتون یک مثال رو به صورت ساده البته با استفاده از Asp.net Core می نویسم چون با Asp Classic کار نکردم ولی خب تفاوتی هم نمیکنه.

 

اعتبارسنجی فیلدها با استفاده از Jquery

در ابتدا فرض کنید form زیر را دارید.

<form>
    <input type='text' id='txtname' />
    <input type='text' id='txtfamily' />
    <input type='number' id='txtage' />


   <button type='submit' class='btn'>ثبت اطلاعات</button>
</form>

به صورت خیلی ساده 3 تگ input جهت ورود اطلاعات داریم. حالا شما میتونید با استفاده از دستورات جی کوئری به راحتی این فیلدها رو اعتبارسنجی کنید.

پس کدهای زیر رو به انتهای این form در View اضافه می کنیم.

<script>
   var myname = $("#txtname").val();
   var myfamily = $("#txtfamily").val();
   var myage = $("#txtage").val();

   if (myname == '' || myname == null)
   {
      alert('نام خالی است.');
      return false;
   }
   if (myfamily == '' || myfamly == null)
   {
      alert('نام خانوادگی وارد نشده است');
      return false;
   }
   if (myfamily.length() < 5)
   {
      alert('نام خانوادگی حداقل باید 5 کاراکتر باشد');
      return false;
   }
   if (myage < 10)
   {
      alert('سن نمی تواند کمتر از 10 سال باید');
      return false;
   }

   $.ajax({
     ....
   })
</script>

همونطوری که می بینید به راحتی فیلدها اعتبارسنجی شدن. شما هر اعتبار سنجی دیگه ای که بخواید هم میتونید انجام بدید.

اگر بخواید به صورت حرفه ای تری اعتبارسنجی رو انجام بدید میتونید از پلاگین jquery validation هم استفاده کنید.

Form Validation using Ajax

ویرایش شده در سه شنبه 13 آبان 1399 ساعت 02:37:11
به این پاسخ امتیاز بدهید    0
امتیاز: 1617 رتبه: 2
پاسخ دهنده : Kpa91 22:05 1399/08/14

خیلی ساده و زیبا پاسخ دادید سپاسگذارم.

به این پاسخ امتیاز بدهید    0
امتیاز: 12 رتبه: 59
پاسخ دهنده : Kpa91 07:42 1399/08/17

درود یک مسئله ای رو در پاسخ شما دقت نکردم  دوست عزیز، شما مسئله اعتبار سنجی منو اشتباه متوجه شدید کنترل مقدار یا نوع ورودی ها من در سمت کلاینت انجام نمیشه بلکه در سمت سرور است مشکل اینجاست

1- مقدار ورودی رو چک کن

2- اگر ورودی واردنشده بود یا مشمول شرط نبود پیامی نشان بده و از این روتین خارج شو.

برنامه برای نمایش پیام با sweetalert میره سمت کلاینت و بر میگرده به سرور و این باعث میشه کل جعبه متنهای روی صفحه من خالی بشن(صفحه رفرش بشه) در واقع المنتهای صفحه من همگی به مقدار اولیه ست بشن من می خواستم مانع این کار بشم و در سایتهای مختلف بهترین راهکار رو استفاده از ajax پیشنهاد کرده بودن که چون به آزاکس مسلط نیستم ناچارا المنتها رو از سمت کلاینت تبدیل کردم به سمت سرور  مثلاً

<"input type="text"> تبدیل شد به <asp:TextBox> و مشکل حل شد

به این پاسخ امتیاز بدهید    ‎−1
امتیاز: 12 رتبه: 59
پاسخ دهنده : Kpa91 01:07 1399/09/11

درود دو عرض ادب ، مشکل هنوز باقی است شاید بیان من ناقص بوده

در صفحه وب سایت من که در asp.net است تعدادی ورودی وجود دارد مثلاً جعبه متن،دکمه،لیست بازشو و...

هر گاه من با یکی از اینها عملی انجام دهم مثل کلیک روی دکمه، تعییر گزینه در لیست بازشو یا فشار کلیدی خاص در جعبه متن یک روتین سمت سرور اجرا میشود مثلا مجموعه دستورات c# یا vb، فرضا پیامی ظاهر شده و پاسخی دریافت میشود اما موقع برگشت به صفحه تمام فیلدها به مقدار اولیه اشان بر می گردند یا ریست میشوند دوستان عزیز در سری های قبل زحمت کشیده با جاوا اسکریپ یا jquery پاسخ داده اند آیا راهی ندارد با امکانات خود زبان سمت سرور این مشکل حل شود؟

به این پاسخ امتیاز بدهید    0
امتیاز: 12 رتبه: 59
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود