آموزش رایگان جاوا اسکریپت (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 مناسب مانند

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


نتیجه‌گیری

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

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت
23م مرداد 1402

آموزش کامنت‌ها و کاراکترهای خاص در HTML و CSS: نحوه استفاده و مدیریت

مطالعه بیشتر
مقدمه‌ای به رویدادها و دستورات در Vue.js: نحوه مدیریت و استفاده از v-on
28م شهریور 1402

مقدمه‌ای به رویدادها و دستورات در Vue.js: نحوه مدیریت و استفاده از v-on

مطالعه بیشتر
کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت
25م مرداد 1402

کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت

مطالعه بیشتر
آموزش جامع حلقه‌های for و while در جاوا اسکریپت: نحوه استفاده و کاربردها
2م بهمن 1402

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

مطالعه بیشتر
آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها
28م مهر 1403

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

مطالعه بیشتر
استفاده از Flexbox در CSS برای چیدمان‌های مدرن: راهنمای جامع و کاربردی
10م آبان 1403

استفاده از Flexbox در CSS برای چیدمان‌های مدرن: راهنمای جامع و کاربردی

مطالعه بیشتر
آموزش ترانزیشن‌ها و انیمیشن‌های نرم با CSS: ایجاد افکت‌های پویا و واکنش‌گرا
10م شهریور 1402

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

مطالعه بیشتر
معرفی DOM و اصول آن در جاوا اسکریپت: راهنمای جامع برای مبتدیان
1م آبان 1403

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

مطالعه بیشتر
آموزش ساخت یک گالری تصویر با استفاده از جاوا اسکریپت: راهنمای گام به گام
3م آبان 1403

آموزش ساخت یک گالری تصویر با استفاده از جاوا اسکریپت: راهنمای گام به گام

مطالعه بیشتر
آموزش مفاهیم پایه‌ای اشیاء در جاوا اسکریپت: تعریف، ویژگی‌ها و متدها
2م شهریور 1403

آموزش مفاهیم پایه‌ای اشیاء در جاوا اسکریپت: تعریف، ویژگی‌ها و متدها

مطالعه بیشتر
کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد
18م شهریور 1402

کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد

مطالعه بیشتر
استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع
9م آبان 1403

استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع

مطالعه بیشتر

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