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

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


نتیجه‌گیری

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

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

روش‌های کار با Conditional و Loop در Vue.js | آموزش v-if، v-show و v-for
28م آذر 1404

روش‌های کار با Conditional و Loop در Vue.js | آموزش v-if، v-show و v-for

مطالعه بیشتر
مدیریت خطاها و استفاده از try...catch در جاوا اسکریپت: راهنمای کامل و مثال‌ها
28م مهر 1403

مدیریت خطاها و استفاده از try...catch در جاوا اسکریپت: راهنمای کامل و مثال‌ها

مطالعه بیشتر
آموزش جامع توابع بازگشتی (Recursion) و کاربردهای آن در جاوا اسکریپت: مثال‌ها و مفاهیم
29م مهر 1403

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

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

آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر

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

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

مطالعه بیشتر
آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب
18م شهریور 1402

آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب

مطالعه بیشتر
مفاهیم پیشرفته در کلاس‌ها و وراثت (Super, Extends) در جاوا اسکریپت: راهنمای کامل و مثال‌ها
29م مهر 1403

مفاهیم پیشرفته در کلاس‌ها و وراثت (Super, Extends) در جاوا اسکریپت: راهنمای کامل و مثال‌ها

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

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

مطالعه بیشتر
آشنایی با Vue CLI و ایجاد پروژه‌های پیشرفته در Vue.js | راهنمای کامل
29م آذر 1404

آشنایی با Vue CLI و ایجاد پروژه‌های پیشرفته در Vue.js | راهنمای کامل

مطالعه بیشتر
آموزش رویدادهای پیشرفته در جاوا اسکریپت: بابلینگ، کپچرینگ و توقف پیش‌فرض - راهنمای جامع
2م آبان 1403

آموزش رویدادهای پیشرفته در جاوا اسکریپت: بابلینگ، کپچرینگ و توقف پیش‌فرض - راهنمای جامع

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

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

مطالعه بیشتر
مقدمه‌ای به template و دیتابایندینگ در Vue.js: نحوه مدیریت داده‌ها و رندرینگ پویا
28م شهریور 1402

مقدمه‌ای به template و دیتابایندینگ در Vue.js: نحوه مدیریت داده‌ها و رندرینگ پویا

مطالعه بیشتر

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