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

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

1403/08/03 16:47 محراب حسن زاده
آموزش کار با رویدادهای فرم و اعتبارسنجی فرم‌ها در جاوا اسکریپت: راهنمای جامع

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

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


نتیجه‌گیری

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

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش جامع مدیریت خطاها در PHP بر اساس استانداردهای گوگل
1405/05/01 20:23

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

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

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

مطالعه بیشتر
آموزش جامع ساخت فرم ورود کاربر در PHP (براساس استانداردهای گوگل و امنیت بالا)
1405/05/14 22:03

آموزش جامع ساخت فرم ورود کاربر در PHP (براساس استانداردهای گوگل و امنیت بالا)

مطالعه بیشتر
آموزش تگ‌های زمان و مکان در HTML: استفاده از time و location در صفحات وب
1402/05/29 21:13

آموزش تگ‌های زمان و مکان در HTML: استفاده از time و location در صفحات وب

مطالعه بیشتر
آموزش جامع و کاربردی توابع رشته‌ای در PHP (توابع strlen، str_replace و strpos)
1405/04/27 21:43

آموزش جامع و کاربردی توابع رشته‌ای در PHP (توابع strlen، str_replace و strpos)

مطالعه بیشتر
آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب
1403/08/11 21:20

آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب

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

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

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

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

مطالعه بیشتر
آموزش کامل دستور switch-case در PHP (به همراه مثال‌های کاربردی)
1405/04/04 00:08

آموزش کامل دستور switch-case در PHP (به همراه مثال‌های کاربردی)

مطالعه بیشتر
مدیریت خطاها در Async/Await و Promises در جاوا اسکریپت: راهنمای کامل با مثال‌های عملی
1403/07/30 20:59

مدیریت خطاها در Async/Await و Promises در جاوا اسکریپت: راهنمای کامل با مثال‌های عملی

مطالعه بیشتر
آموزش جامع مدیریت خطا با Try Catch و Exception در PHP (اصول و استانداردهای تمیز)
1405/05/01 20:26

آموزش جامع مدیریت خطا با Try Catch و Exception در PHP (اصول و استانداردهای تمیز)

مطالعه بیشتر
آموزش ساخت ماشین حساب با جاوا اسکریپت: راهنمای کامل با مثال‌های کاربردی
1403/08/04 18:52

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

مطالعه بیشتر

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