آموزش رایگان جاوا اسکریپت (JavaScript)

آموزش کار با رویدادهای فرم و اعتبارسنجی فرم‌ها در جاوا اسکریپت: راهنمای جامع

3م آبان 1403 محراب حسن زاده
آموزش کار با رویدادهای فرم و اعتبارسنجی فرم‌ها در جاوا اسکریپت: راهنمای جامع

فرم‌ها یکی از مهم‌ترین بخش‌های تعاملات کاربر با صفحات وب هستند. با استفاده از جاوااسکریپت، می‌توانید تعاملات فرم‌ها را کنترل کرده و از اعتبارسنجی (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 مناسب مانند

  • بهینه‌سازی برای سئو: فرم‌هایی که سریع بارگذاری می‌شوند و تجربه کاربری بهتری ارائه می‌دهند، در رتبه‌بندی گوگل تاثیر مثبتی دارند. بنابراین، اعتبارسنجی سمت کاربر و استفاده بهینه از منابع می‌تواند به بهبود سئوی سایت شما کمک کند.


نتیجه‌گیری

اعتبارسنجی فرم‌ها یکی از مهم‌ترین جنبه‌های تجربه کاربری در صفحات وب است. با استفاده از جاوااسکریپت و مدیریت رویدادهای فرم، می‌توانید داده‌های وارد شده توسط کاربران را بررسی کرده و از ورود اطلاعات نامعتبر جلوگیری کنید. همچنین با بهینه‌سازی تجربه کاربری و استفاده از تکنیک‌های مدرن اعتبارسنجی، می‌توانید عملکرد سایت و رتبه‌بندی آن در موتورهای جستجو را بهبود دهید.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکه‌های پیچیده و واکنش‌گرا راهنمای کامل
6م شهریور 1402

آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکه‌های پیچیده و واکنش‌گرا راهنمای کامل

مطالعه بیشتر
آموزش ساخت اولین فایل PHP و بررسی ساختار تگ‌ها بر اساس استاندارد وب
15م خرداد 1405

آموزش ساخت اولین فایل PHP و بررسی ساختار تگ‌ها بر اساس استاندارد وب

مطالعه بیشتر
آموزش ساختار کامپوننت در Vue.js (راهنمای کامل همراه مثال)
15م مرداد 1404

آموزش ساختار کامپوننت در Vue.js (راهنمای کامل همراه مثال)

مطالعه بیشتر
آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد
24م آذر 1404

آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد

مطالعه بیشتر
آموزش کار با Local Storage و Session Storage در جاوا اسکریپت: ذخیره‌سازی داده‌ها در مرورگر
3م آبان 1403

آموزش کار با Local Storage و Session Storage در جاوا اسکریپت: ذخیره‌سازی داده‌ها در مرورگر

مطالعه بیشتر
آموزش ایجاد، دسترسی و اصلاح آرایه‌ها در جاوا اسکریپت: راهنمای کامل
4م مهر 1403

آموزش ایجاد، دسترسی و اصلاح آرایه‌ها در جاوا اسکریپت: راهنمای کامل

مطالعه بیشتر
مدیریت رویدادها در جاوا اسکریپت: اضافه و حذف Event Listeners - آموزش جامع با مثال‌ها
2م آبان 1403

مدیریت رویدادها در جاوا اسکریپت: اضافه و حذف Event Listeners - آموزش جامع با مثال‌ها

مطالعه بیشتر
آموزش جامع پارامترها و مقادیر بازگشتی در PHP (بر اساس استانداردهای مدرن)
16م تیر 1405

آموزش جامع پارامترها و مقادیر بازگشتی در PHP (بر اساس استانداردهای مدرن)

مطالعه بیشتر
تفاوت Callbacks و Promises در جاوا اسکریپت: مقایسه جامع با مثال‌ها
30م مهر 1403

تفاوت Callbacks و Promises در جاوا اسکریپت: مقایسه جامع با مثال‌ها

مطالعه بیشتر
آموزش جامع توابع داخلی و پرکاربرد PHP + مثال‌های عملی
16م تیر 1405

آموزش جامع توابع داخلی و پرکاربرد PHP + مثال‌های عملی

مطالعه بیشتر
آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML
13م خرداد 1405

آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML

مطالعه بیشتر
الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها
1م آبان 1403

الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد