فرمها یکی از مهمترین بخشهای تعاملات کاربر با صفحات وب هستند. با استفاده از جاوااسکریپت، میتوانید تعاملات فرمها را کنترل کرده و از اعتبارسنجی (Validation) فرمها برای اطمینان از ورود دادههای صحیح استفاده کنید. در این مقاله، به بررسی نحوه مدیریت رویدادهای فرم و انجام اعتبارسنجی با استفاده از جاوااسکریپت میپردازیم و نکات بهینهسازی بر اساس استانداردهای گوگل را مرور میکنیم.
معرفی رویدادهای فرم مانند submit و input
انجام اعتبارسنجی فرم به صورت دستی
نمایش پیامهای خطا به کاربر
بهینهسازی برای بهبود تجربه کاربری و سئو
ابتدا یک فرم ساده 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 مناسب مانند
بهینهسازی برای سئو: فرمهایی که سریع بارگذاری میشوند و تجربه کاربری بهتری ارائه میدهند، در رتبهبندی گوگل تاثیر مثبتی دارند. بنابراین، اعتبارسنجی سمت کاربر و استفاده بهینه از منابع میتواند به بهبود سئوی سایت شما کمک کند.
اعتبارسنجی فرمها یکی از مهمترین جنبههای تجربه کاربری در صفحات وب است. با استفاده از جاوااسکریپت و مدیریت رویدادهای فرم، میتوانید دادههای وارد شده توسط کاربران را بررسی کرده و از ورود اطلاعات نامعتبر جلوگیری کنید. همچنین با بهینهسازی تجربه کاربری و استفاده از تکنیکهای مدرن اعتبارسنجی، میتوانید عملکرد سایت و رتبهبندی آن در موتورهای جستجو را بهبود دهید.
نظری یافت نشد
معرفی جاوا اسکریپت و نحوه استفاده از آن برای توسعه وب تعاملی: راهنمای جامع
27م شهریور 1402
مطالعه بیشتر
آموزش استفاده از object-fit و object-position در CSS: تنظیم و قرارگیری تصاویر بهصورت دقیق
12م آبان 1403
مطالعه بیشتر
پیمایش اشیاء و آرایهها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of
4م مهر 1403
مطالعه بیشتر
آموزش استایلدهی لیستها در CSS: طراحی و استایلدهی ul و ol
10م آبان 1403
مطالعه بیشتر
نصب Node.js و Create React App: شروع پروژههای React.js بهصورت آسان
28م شهریور 1402
مطالعه بیشتر
مقدمهای بر CSS و نحوه اضافه کردن آن به HTML: راهنمای ساده و کامل برای مبتدیان
4م شهریور 1402
مطالعه بیشتر
آموزش توسعه بازیهای ساده با استفاده از جاوا اسکریپت و Canvas API: راهنمای گام به گام
5م آبان 1403
مطالعه بیشتر
آموزش ایجاد تگهای صفحهبندی در HTML و CSS: طراحی و استایلدهی pagination
29م مرداد 1402
مطالعه بیشتر
آموزش مفاهیم پایهای اشیاء در جاوا اسکریپت: تعریف، ویژگیها و متدها
2م شهریور 1403
مطالعه بیشتر
آموزش Pseudo-classes در CSS: تغییر استایل عناصر با hover، focus و nth-child
10م شهریور 1402
مطالعه بیشتر
مفاهیم پیشرفته در کلاسها و وراثت (Super, Extends) در جاوا اسکریپت: راهنمای کامل و مثالها
29م مهر 1403
مطالعه بیشتر
آموزش Responsive Design با استفاده از Media Queries: طراحی واکنشگرا برای تمامی دستگاهها
10م شهریور 1402
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد