آموزش جامع اعتبارسنجی فرمها در جاوااسکریپت
🎯 اهداف یادگیری
- درک اهمیت اعتبارسنجی فرمها در سمت کلاینت
- آشنایی با روشهای مختلف اعتبارسنجی
- پیادهسازی اعتبارسنجی با جاوااسکریپت خالص
- استفاده از عبارات منظم برای اعتبارسنجی پیشرفته
📌 چرا اعتبارسنجی فرم مهم است؟
اعتبارسنجی فرمها به دلایل زیر ضروری است:
- تجربه کاربری بهتر: کاربران سریعاً از خطاهای خود مطلع میشوند
- کاهش ترافیک سرور: از ارسال درخواستهای نامعتبر جلوگیری میکند
- امنیت بیشتر: از حملات اسکریپتی و تزریق کد جلوگیری میکند
- دادههای معتبر: اطمینان از صحت دادههای ارسالی به سرور
📌 انواع اعتبارسنجی فرم
javascript
// اعتبارسنجی سمت کلاینت (جاوااسکریپت)function validateForm() { const email = document.getElementById('email').value; if (!email.includes('@')) { alert('لطفاً یک ایمیل معتبر وارد کنید'); return false; } return true;}
انواع اعتبارسنجی:
- اعتبارسنجی سمت کلاینت: با جاوااسکریپت در مرورگر انجام میشود (سریع و تعاملی)
- اعتبارسنجی سمت سرور: با زبانهای سمت سرور مانند PHP انجام میشود (ضروری برای امنیت)
📌 اعتبارسنجی فیلدهای متداول
1. اعتبارسنجی ایمیل
javascript
function validateEmail(email) { const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return regex.test(email);}
2. اعتبارسنجی شماره تلفن
javascript
function validatePhone(phone) { const regex = /^09[0-9]{9}$/; return regex.test(phone);}
3. اعتبارسنجی رمز عبور
javascript
function validatePassword(password) { // حداقل 8 کاراکتر، حداقل یک حرف بزرگ و یک عدد const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/; return regex.test(password);}
📌 اعتبارسنجی زمان واقعی (Real-time Validation)
اعتبارسنجی هنگام تایپ کاربر، تجربه بهتری ایجاد میکند:
javascript
document.getElementById('email').addEventListener('input', function(e) { const email = e.target.value; const errorElement = document.getElementById('emailError'); if (!email.includes('@')) { errorElement.textContent = 'لطفاً یک ایمیل معتبر وارد کنید'; errorElement.style.display = 'block'; } else { errorElement.style.display = 'none'; }});
📌 اعتبارسنجی فرم کامل
نمونه کامل اعتبارسنجی یک فرم ثبت نام:
javascript
document.getElementById('registerForm').addEventListener('submit', function(e) { e.preventDefault(); const name = document.getElementById('name').value; const email = document.getElementById('email').value; const password = document.getElementById('password').value; // اعتبارسنجی نام if (name.length < 3) { alert('نام باید حداقل 3 کاراکتر داشته باشد'); return; } // اعتبارسنجی ایمیل if (!validateEmail(email)) { alert('لطفاً یک ایمیل معتبر وارد کنید'); return; } // اعتبارسنجی رمز عبور if (!validatePassword(password)) { alert('رمز عبور باید حداقل 8 کاراکتر و شامل حروف بزرگ و اعداد باشد'); return; } // اگر همه چیز درست بود، فرم ارسال شود this.submit();});
📌 نمایش خطاها به کاربر
نمایش خطاها به صورت کاربرپسند بسیار مهم است:
javascript
function showError(inputElement, message) { const errorElement = inputElement.nextElementSibling; inputElement.classList.add('error'); errorElement.textContent = message; errorElement.style.display = 'block';} function clearError(inputElement) { const errorElement = inputElement.nextElementSibling; inputElement.classList.remove('error'); errorElement.textContent = ''; errorElement.style.display = 'none';}
📌 تمرین عملی
فرم زیر را با اعتبارسنجی مناسب کامل کنید:
javascript
function validateLoginForm() { const username = document.getElementById('username').value; const password = document.getElementById('password').value; // اعتبارسنجی نام کاربری و رمز عبور را اینجا پیادهسازی کنید}
راهنمای تمرین:
- نام کاربری نباید خالی باشد و حداقل 4 کاراکتر داشته باشد
- رمز عبور باید حداقل 6 کاراکتر داشته باشد
- خطاها را به صورت کاربرپسند نمایش دهید
- اعتبارسنجی را هم هنگام تایپ و هم هنگام ارسال فرم انجام دهید
📌 قدم بعدی
در درس بعدی با Async/Await در جاوااسکریپت آشنا خواهیم شد!