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

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

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

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

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

واحدهای CSS مدرن: آموزش استفاده از vw، vh، vmin و vmax برای طراحی واکنش‌گرا

11م آبان 1403

مطالعه بیشتر

آموزش استفاده از ماژول‌ها (Modules) در جاوا اسکریپت: آشنایی با ES6 Modules - راهنمای کامل

آموزش استفاده از ماژول‌ها (Modules) در جاوا اسکریپت: آشنایی با ES6 Modules - راهنمای کامل

5م آبان 1403

مطالعه بیشتر

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

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

3م آبان 1403

مطالعه بیشتر

JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد

JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد

28م شهریور 1402

مطالعه بیشتر

استفاده از Viewports و Viewport Units در CSS: طراحی واکنش‌گرا با vw، vh، vmin و vmax

استفاده از Viewports و Viewport Units در CSS: طراحی واکنش‌گرا با vw، vh، vmin و vmax

16م آبان 1403

مطالعه بیشتر

مدیریت ترتیب نمایش با z-index در CSS: آموزش کامل و کاربردی

مدیریت ترتیب نمایش با z-index در CSS: آموزش کامل و کاربردی

11م آبان 1403

مطالعه بیشتر

آموزش قالب‌بندی متن در HTML: استفاده از تگ‌ها و CSS برای استایل‌دهی

آموزش قالب‌بندی متن در HTML: استفاده از تگ‌ها و CSS برای استایل‌دهی

23م مرداد 1402

مطالعه بیشتر

کار با فیلترهای CSS: آموزش استفاده از blur، brightness و contrast برای افکت‌های تصویری جذاب

کار با فیلترهای CSS: آموزش استفاده از blur، brightness و contrast برای افکت‌های تصویری جذاب

11م آبان 1403

مطالعه بیشتر

استفاده از calc در CSS: محاسبات پویا برای طراحی‌های منعطف

استفاده از calc در CSS: محاسبات پویا برای طراحی‌های منعطف

12م آبان 1403

مطالعه بیشتر

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

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

2م آبان 1403

مطالعه بیشتر

آموزش HTML: اولین گام برای طراحی سایت و سئو حرفه‌ای

آموزش HTML: اولین گام برای طراحی سایت و سئو حرفه‌ای

18م مرداد 1402

مطالعه بیشتر

آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var

آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var

18م شهریور 1402

مطالعه بیشتر

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