آموزش کار با رویدادهای فرم و اعتبارسنجی فرمها در جاوا اسکریپت: راهنمای جامع
فرمها یکی از مهمترین بخشهای تعاملات کاربر با صفحات وب هستند. با استفاده از جاوااسکریپت، میتوانید تعاملات فرمها را کنترل کرده و از اعتبارسنجی (Validation) فرمها برای اطمینان از ورود دادههای صحیح استفاده کنید. در این مقاله، به بررسی نحوه مدیریت رویدادهای فرم و انجام اعتبارسنجی با استفاده از جاوااسکریپت میپردازیم و نکات بهینهسازی بر اساس استانداردهای گوگل را مرور میکنیم.
اهداف این مقاله:
معرفی رویدادهای فرم مانند submit و input
انجام اعتبارسنجی فرم به صورت دستی
نمایش پیامهای خطا به کاربر
بهینهسازی برای بهبود تجربه کاربری و سئو
گام اول: ساختار HTML فرم
ابتدا یک فرم ساده HTML ایجاد میکنیم که شامل ورودیهای مختلفی مانند نام، ایمیل و رمز عبور باشد. همچنین از دکمه ارسال برای ارسال فرم استفاده میکنیم.
< ! DOCTYPE html >
< html lang="fa" >
< head >
< meta charset="UTF-8" >
< meta name="viewport" content="width=device-width, initial-scale=1.0" >
< title > فرم ثبت نام < / title >
< style >
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 20px;
}
form {
background-color: white;
padding: 20px;
border-radius: 5px;
max-width: 400px;
margin: auto;
}
input {
display: block;
width: 100%;
margin: 10px 0;
padding: 10px;
font-size: 16px;
border: 1px solid #ddd;
border-radius: 5px;
}
button {
background-color: #28a745;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
button:hover {
background-color: #218838;
}
.error {
color: red;
font-size: 14px;
}
< / style >
< / head >
< body >
< form id="signup-form" >
< h1 > فرم ثبت نام < / h1 >
< label for="name" > نام: < / label >
< input type="text" id="name" name="name" required >
< div class="error" id="name-error" > < / div >
< label for="email" > ایمیل: < / label >
< input type="email" id="email" name="email" required >
< div class="error" id="email-error" > < / div >
< label for="password" > رمز عبور: < / label >
< input type="password" id="password" name="password" required minlength="6" >
< div class="error" id="password-error" > < / div >
< button type="submit" > ثبت نام < / button >
< / form >
< script src="app.js" > < / script >
< / body >
< / html >
توضیحات HTML:
یک فرم ثبتنام ساده شامل سه فیلد (نام، ایمیل، و رمز عبور) ایجاد کردهایم.
هر فیلد دارای یک عنصر خطا (div.error) برای نمایش پیامهای خطا به کاربر است.
ویژگیهای HTML مانند required و minlength برای انجام اعتبارسنجی اولیه استفاده شدهاند.
گام دوم: مدیریت رویدادهای فرم
در این مرحله، میخواهیم رویداد submit فرم را مدیریت کنیم تا قبل از ارسال فرم به سرور، دادهها اعتبارسنجی شوند.
در فایل app.js، کد زیر را اضافه کنید:
// دسترسی به عناصر فرم
const form = document.getElementById('signup-form');
const nameInput = document.getElementById('name');
const emailInput = document.getElementById('email');
const passwordInput = document.getElementById('password');
// دسترسی به پیامهای خطا
const nameError = document.getElementById('name-error');
const emailError = document.getElementById('email-error');
const passwordError = document.getElementById('password-error');
// اعتبارسنجی فرم هنگام ارسال
form.addEventListener('submit', function(event) {
let isValid = true;
// پاک کردن پیامهای خطا
nameError.textContent = '';
emailError.textContent = '';
passwordError.textContent = '';
// اعتبارسنجی نام
if (nameInput.value.trim() === '') {
nameError.textContent = 'نام نمیتواند خالی باشد';
isValid = false;
}
// اعتبارسنجی ایمیل
if (!validateEmail(emailInput.value)) {
emailError.textContent = 'لطفاً یک ایمیل معتبر وارد کنید';
isValid = false;
}
// اعتبارسنجی رمز عبور
if (passwordInput.value.length < 6) {
passwordError.textContent = 'رمز عبور باید حداقل ۶ کاراکتر باشد';
isValid = false;
}
// جلوگیری از ارسال فرم در صورت وجود خطا
if (!isValid) {
event.preventDefault();
}
});
// تابع اعتبارسنجی ایمیل
function validateEmail(email) {
const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return re.test(email);
}
توضیحات کد:
ابتدا به عناصر فرم و پیامهای خطا دسترسی پیدا میکنیم.
با استفاده از رویداد submit، هنگامی که فرم ارسال میشود، اعتبارسنجی را انجام میدهیم.
در صورت خالی بودن فیلد نام، وارد کردن ایمیل نامعتبر یا کوتاه بودن رمز عبور، پیامهای خطا نمایش داده میشوند و از ارسال فرم جلوگیری میشود.
برای اعتبارسنجی ایمیل از یک الگوی Regular Expression استفاده شده است.
گام سوم: اعتبارسنجی همزمان با تایپ کردن کاربر
برای بهبود تجربه کاربری، میتوانیم اعتبارسنجی فیلدها را همزمان با تایپ کردن کاربر انجام دهیم. این کار باعث میشود کاربر سریعتر از خطاها آگاه شود.
// اعتبارسنجی همزمان فیلد نام
nameInput.addEventListener('input', function() {
if (nameInput.value.trim() === '') {
nameError.textContent = 'نام نمیتواند خالی باشد';
} else {
nameError.textContent = '';
}
});
// اعتبارسنجی همزمان فیلد ایمیل
emailInput.addEventListener('input', function() {
if (!validateEmail(emailInput.value)) {
emailError.textContent = 'لطفاً یک ایمیل معتبر وارد کنید';
} else {
emailError.textContent = '';
}
});
// اعتبارسنجی همزمان فیلد رمز عبور
passwordInput.addEventListener('input', function() {
if (passwordInput.value.length < 6) {
passwordError.textContent = 'رمز عبور باید حداقل ۶ کاراکتر باشد';
} else {
passwordError.textContent = '';
}
});
گام چهارم: نکات بهینهسازی و سئو
استفاده از HTML5 Validation: از اعتبارسنجیهای HTML5 مانند required و minlength برای جلوگیری از ارسال دادههای نامعتبر استفاده کنید. این کار باعث بهبود تجربه کاربری و کاهش بار روی سرور میشود.
کاهش بار روی سرور: با انجام اعتبارسنجی در سمت کاربر با استفاده از جاوااسکریپت، میتوانید از ارسال درخواستهای نامعتبر به سرور جلوگیری کرده و عملکرد سایت را بهبود بخشید.
تجربه کاربری بهتر: نمایش پیامهای خطا همزمان با تایپ کردن کاربر به بهبود تجربه کاربری کمک میکند. کاربر سریعاً از اشتباهات خود مطلع میشود و نیازی به ارسال دوباره فرم نخواهد داشت.
استفاده از Accessibility: پیامهای خطا باید به صورت واضح و قابل دسترس برای همه کاربران از جمله کاربران با نیازهای ویژه نمایش داده شوند. استفاده از تگهای HTML مناسب مانند
بهینهسازی برای سئو: فرمهایی که سریع بارگذاری میشوند و تجربه کاربری بهتری ارائه میدهند، در رتبهبندی گوگل تاثیر مثبتی دارند. بنابراین، اعتبارسنجی سمت کاربر و استفاده بهینه از منابع میتواند به بهبود سئوی سایت شما کمک کند.
نتیجهگیری
اعتبارسنجی فرمها یکی از مهمترین جنبههای تجربه کاربری در صفحات وب است. با استفاده از جاوااسکریپت و مدیریت رویدادهای فرم، میتوانید دادههای وارد شده توسط کاربران را بررسی کرده و از ورود اطلاعات نامعتبر جلوگیری کنید. همچنین با بهینهسازی تجربه کاربری و استفاده از تکنیکهای مدرن اعتبارسنجی، میتوانید عملکرد سایت و رتبهبندی آن در موتورهای جستجو را بهبود دهید.
پرسش و پاسخ
نظری یافت نشد
برای ارسال نظر ابتدا وارد شوید