📞 02166056460

رويدادهای عناصر فرم در HTML

7 / 10
از 4 کاربر
بازگشت به لیست مقالات » | یکشنبه 19 مهر 1405 در ساعت 7 و 53 دقیقه | نظرات کاربران ( 3 )

رویدادهای عناصر فرم در HTML چیست؟

💡آشنایی با رویدادهای فرم

رویدادهای عناصر فرم در HTML به برنامه نویس امکان می دهند واکنش صفحه را به کارهایی مانند وارد کردن متن، تغییر یک گزینه، انتخاب بخشی از محتوا یا ارسال فرم تعریف کند. این رویدادها پلی میان تعامل کاربر و کد جاوااسکریپت هستند و با کمک آنها می توان فرم هایی روشن تر، قابل استفاده تر و امن تر ساخت. اگر در حال یادگیری HTML و JavaScript هستید، شناخت رفتار هر رویداد کمک می کند کد مناسب را در زمان مناسب اجرا کنید.

🧭تعامل با کنترل های فرم

کنترل هایی مانند input، select، textarea و دکمه های فرم هر کدام می توانند رویدادهای مشخصی را ایجاد کنند. برای نمونه، هنگام تایپ در کادر جستجو می توان نتیجه ها را به روز کرد، بعد از خروج کاربر از یک فیلد می توان قالب داده را بررسی کرد و هنگام ارسال فرم می توان از خالی نبودن فیلدهای ضروری مطمئن شد. انتخاب درست رویداد باعث می شود برنامه به جای اجرای بی مورد کد، فقط در پاسخ به رفتار مرتبط کاربر واکنش نشان دهد.

فهرست رویدادهای عناصر فرم در HTML

📋مرجع سریع رویدادها

در جدول زیر رویدادهای متداول و چند نام قدیمی یا وابسته به شرایط خاص کنار هم آمده اند. نام هایی مانند onformchange و onforminput در منابع قدیمی دیده می شوند، اما پشتیبانی استاندارد و قابل اتکایی در مرورگرهای امروزی ندارند. برای توسعه جدید، معمولاً باید از رویدادهای رایج و سازگار مانند input، change، focus، blur و submit استفاده کرد.

رویداد زمان اجرا و کاربرد
blur یا onblur زمانی اجرا می شود که کنترل دیگر فوکوس ندارد؛ برای بررسی اولیه فیلد پس از پایان ویرایش کاربرد دارد.
change یا onchange پس از تغییر مقدار کنترل و ثبت یا تایید آن اجرا می شود. رفتار دقیق آن به نوع کنترل بستگی دارد.
contextmenu یا oncontextmenu هنگام درخواست منوی زمینه، معمولاً با کلیک راست، رخ می دهد و رویدادی عمومی است؛ محدود به کنترل های فرم نیست.
focus یا onfocus وقتی کنترل فوکوس می گیرد اجرا می شود؛ برای راهنمایی درباره فیلد فعال یا نمایش نکته مفید است.
formchange یا onformchange در برخی منابع قدیمی آمده است، اما رویدادی استاندارد و قابل اتکا برای فرم های امروزی نیست.
forminput یا onforminput نامی قدیمی و غیرقابل اتکا در مرورگرهای جدید است؛ برای دریافت تغییر مقدار یک فیلد از input استفاده کنید.
input یا oninput هنگام تغییر مقدار ورودی در اثر تعامل کاربر اجرا می شود و برای بازخورد فوری مناسب است.
invalid یا oninvalid هنگام نامعتبر بودن مقدار کنترل در بررسی اعتبارسنجی بومی مرورگر رخ می دهد.
select یا onselect هنگام انتخاب بخشی از متن در کنترل های متنی رخ می دهد؛ با انتخاب گزینه در فهرست یکی نیست.
submit یا onsubmit هنگام ارسال فرم رخ می دهد و برای اعتبارسنجی نهایی یا جلوگیری از ارسال نامعتبر کاربرد دارد.

تفاوت رویدادهای مهم فرم

رویدادهای input و change

⌨️بازخورد فوری یا پس از تایید

تفاوت مهم input و change در زمان اجراست. رویداد input معمولاً با هر تغییر مقدار رخ می دهد؛ بنابراین برای شمارش لحظه ای نویسه ها، پیشنهاد واژه یا جستجوی زنده مناسب است. رویداد change بیشتر زمانی اجرا می شود که تغییر مقدار نهایی شده باشد. در یک فهرست کشویی، برای مثال، معمولاً پس از انتخاب گزینه جدید این رویداد رخ می دهد. در ورودی متنی، ممکن است اجرای آن تا زمانی که کاربر مقدار را تایید کند یا از فیلد خارج شود به تاخیر بیفتد.

رویدادهای focus و blur

🎯تشخیص فیلد فعال

رویداد focus نشان می دهد کاربر وارد یک کنترل شده است؛ در مقابل، blur هنگام ترک کنترل رخ می دهد. می توانید هنگام فوکوس راهنمای کوتاهی کنار فیلد نشان دهید و پس از blur، قالب ایمیل یا شماره تلفن را بررسی کنید. بهتر است خطاها با توضیح روشن نمایش داده شوند و فقط به تغییر رنگ فیلد اکتفا نشود؛ این کار به کاربران صفحه خوان و افرادی که تشخیص رنگ برایشان دشوار است نیز کمک می کند.

رویدادهای invalid و submit

🛡️اعتبارسنجی پیش از ارسال

رویداد invalid برای کنترل هایی رخ می دهد که قواعد اعتبارسنجی HTML را رعایت نکرده اند؛ برای نمونه، فیلد اجباری خالی مانده یا مقدار با نوع تعیین شده سازگار نیست. رویداد submit به فرم تعلق دارد و زمانی اجرا می شود که کاربر ارسال را آغاز می کند. اعتبارسنجی سمت مرورگر تجربه کاربری را بهتر می کند، اما برای حفظ امنیت باید داده ها در سمت سرور نیز بررسی شوند؛ کاربر می تواند کنترل های مرورگر را دور بزند.

نمونه استفاده از رویدادهای فرم در JavaScript

💻شنیدن تغییر مقدار

روش addEventListener راهی خوانا برای ثبت رویداد است و از نوشتن جاوااسکریپت مستقیم در ویژگی های HTML جلوگیری می کند. در نمونه زیر، پیام شمارش با هر تغییر ورودی به روز می شود. شناسه های استفاده شده در کد باید با شناسه عناصر صفحه یکسان باشند.

const field = document.querySelector('#name');
const message = document.querySelector('#message');

field.addEventListener('input', () => {
  message.textContent = `تعداد نویسه ها: ${field.value.length}`;
});
⚠️کنترل ارسال فرم

برای بررسی ارسال فرم، رویداد را روی خود فرم ثبت کنید. متد preventDefault() از ارسال پیش فرض جلوگیری می کند؛ بنابراین باید آن را فقط زمانی به کار ببرید که قرار است ارسال را با منطق دیگری مدیریت کنید. در یک فرم واقعی، دریافت پاسخ سرور و نمایش وضعیت موفقیت یا خطا را نیز در نظر بگیرید.

const form = document.querySelector('#contact-form');

form.addEventListener('submit', (event) => {
  if (!form.checkValidity()) {
    event.preventDefault();
    form.reportValidity();
  }
});

نکته های کاربردی برای پیاده سازی رویدادهای فرم

1

رویداد متناسب با نیاز انتخاب کنید. برای نمایش پاسخ لحظه ای از input، برای ثبت تغییر نهایی گزینه از change و برای تصمیم گیری هنگام ارسال از submit استفاده کنید. استفاده نادرست می تواند باعث اجرای زودهنگام یا دیرهنگام منطق صفحه شود.

2

از رویدادهای قدیمی با احتیاط استفاده کنید. ویژگی هایی که با پیشوند on نوشته می شوند، شکل قدیمی ثبت رویداد در HTML هستند. برای مثال، oninput نام یک ویژگی رویداد است، اما در کدهای جدید معمولاً نام رویداد را به addEventListener('input', ...) می دهید. نام های onformchange و onforminput را برای قابلیت های تازه انتخاب نکنید.

3

از حلقه های سنگین در هر ورودی بپرهیزید. رویداد input ممکن است بارها در مدت کوتاه اجرا شود. اگر هر بار درخواست شبکه یا محاسبه سنگین انجام می دهید، از روش هایی مانند تاخیر کنترل شده استفاده کنید تا صفحه روان بماند و تعداد درخواست های غیرضروری کاهش یابد.

4

فقط به رویداد blur تکیه نکنید. برخی کاربران با صفحه کلید حرکت می کنند و برخی از روش های کمکی استفاده می کنند. پیام خطا را به فیلد مربوط متصل کنید، وضعیت را به صورت متنی توضیح دهید و اجازه دهید کاربر بتواند خطا را به سادگی اصلاح کند. دسترس پذیری بخشی از طراحی درست فرم است.

5

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

اشتباه های رایج هنگام کار با رویدادهای فرم

🔎بررسی مشکلات متداول

یکی از خطاهای رایج، ثبت رویداد روی عنصر اشتباه است؛ برای نمونه، رویداد submit باید روی فرم شنیده شود، نه صرفاً روی دکمه ارسال. اشتباه دیگر این است که برنامه نویس تصور کند همه رویدادها در تمام کنترل ها به یک شکل عمل می کنند. همواره نوع عنصر و هدف مورد نظر را بررسی کنید و در صورت نیاز رفتار را با ابزار توسعه مرورگر آزمایش کنید.

🚫رویداد جایگزین اعتبارسنجی امن نیست

اجرای کد در رویداد submit به تنهایی امنیت داده را تضمین نمی کند. اعتبارسنجی مرورگر برای راهنمایی کاربر مفید است، اما داده های فرم باید در سرور نیز بررسی و پاک سازی شوند. همچنین برای اطلاعات حساس از نمایش جزئیات فنی خطا در صفحه عمومی خودداری کنید و پیام هایی ارائه دهید که قابل فهم و راهگشا باشند.

رویدادهای فرم در طراحی تجربه کاربری

✨فرم قابل فهم و قابل استفاده

فرم خوب فقط مجموعه ای از فیلدها نیست؛ کاربر باید بداند چه اطلاعاتی لازم است، در کدام مرحله قرار دارد و در صورت بروز خطا چه کاری انجام دهد. رویدادهای فرم می توانند راهنما را در زمان نیاز نشان دهند، خطا را نزدیک فیلد مربوط گزارش کنند و پس از ارسال، نتیجه را به روشنی اعلام کنند. در طراحی سایت نیز توجه به همین جزئیات باعث می شود تعامل کاربران با فرم ساده تر و قابل اعتمادتر باشد.

✅جمع بندی

در مجموع، رویدادهای عناصر فرم در HTML ابزارهایی برای مدیریت تعامل کاربر با ورودی ها و کنترل های صفحه هستند. برای تغییرات فوری از input، برای تغییر تاییدشده از change، برای تشخیص ورود و خروج از فیلد از focus و blur و برای مدیریت ارسال از submit کمک بگیرید. رویدادهای قدیمی یا غیراستاندارد را برای پروژه های تازه کنار بگذارید، دسترس پذیری را در نظر داشته باشید و اعتبارسنجی نهایی را در سمت سرور انجام دهید.

سوالات متداول رویدادهای عناصر فرم در HTML

رویداد input چه زمانی اجرا می شود؟

رویداد input معمولاً هنگام تغییر مقدار یک کنترل بر اثر تعامل کاربر اجرا می شود. به همین دلیل برای شمارش زنده نویسه ها، پیش نمایش متن یا جستجوی فوری مناسب است.

تفاوت change و input چیست؟

رویداد input برای تغییرهای لحظه ای مقدار کاربرد دارد، اما change بیشتر پس از نهایی شدن تغییر اجرا می شود. زمان دقیق رخداد change به نوع کنترل بستگی دارد.

آیا onformchange و onforminput در HTML جدید پیشنهاد می شوند؟

خیر. این نام ها در برخی منابع قدیمی دیده می شوند، اما پشتیبانی استاندارد و قابل اتکایی در مرورگرهای امروزی ندارند. برای واکنش به تغییر مقدار یک فیلد از input یا change استفاده کنید.

برای بررسی ارسال فرم از کدام رویداد استفاده می شود؟

رویداد submit را روی عنصر فرم ثبت کنید. می توانید در این رویداد اعتبار داده ها را بررسی کنید و در صورت نیاز با preventDefault از ارسال پیش فرض جلوگیری کنید.

آیا اعتبارسنجی فرم در مرورگر برای امنیت کافی است؟

خیر. اعتبارسنجی سمت مرورگر تجربه کاربری را بهتر می کند، اما ممکن است دور زده شود. داده های دریافتی باید همیشه در سمت سرور نیز بررسی و اعتبارسنجی شوند.

ارسال نظر و نظرات ثبت شده
ابوبکر(حیدری) :
1 0
بسیارعالی بود ممنون ازاین معلومات زیبای شما عزیزم
:
5 0
کامل نیست خیلی خیلی خلاصه گفتین ولی باز هم ممنون تا حدودی کمکم کرد
sahab :
3 0
منظورتون از عنصرهای کنترلی فرمها چیه؟
مدیریت : منظور تگ هایی مانند input می باشد که میتوان اطلاعات آنها را تغییر داد
سایر مقالات
رويدادهای صفحه کليد در HTML رويدادهای صفحه کلید در HTML چیست؟ ⌨️آشنایی با رویدادهای صفحه کلید رویدادهای صفحه کلید در HTM ...
رويدادهای موس در HTML رویدادهای موس در HTML چیست و چه کاربردی دارد؟ 🖱️آشنایی با رویدادهای موس رویدادهای موس در ...
رويدادهای عناصر فرم در HTML رویدادهای عناصر فرم در HTML چیست؟ 💡آشنایی با رویدادهای فرم رویدادهای عناصر فرم در HTML به ...
رويدادهای پنجره در HTML رویدادهای پنجره در HTML؛ راهنمای کاربردی رویدادهای مهم مرورگر 💡آشنایی با رویدادها رویدادهای ...
ویژگی های رویداد در HTML ویژگی های رویداد در HTML چیست و چگونه کار می کند؟ 💡آشنایی با رویدادها در این راهنما، ویژگ ...
ویژگی های عمومی در HTML ویژگی های عمومی HTML چیست و چه کاربردی دارد؟ 💡آشنایی با ویژگی های عمومی ویژگی های عمومی H ...
خاصیت Style تگ ها خاصیت Style تگ ها چیست و چگونه استفاده می شود؟ 💡آشنایی با ویژگی Style در HTML، خاصیت Style ...
خصوصيات استاندارد تگ های HTML راهنمای HTML خصوصیات استاندارد تگ های HTML آشنایی با ویژگی های مشترک عناصر و شیوه استفاده ...
تگ های html تگ های HTML چیست و چه کاربردی دارد؟ 💡آشنایی با ساختار صفحه تگ های HTML اجزای پایه ای هستن ...
کدهای HTML و چگونگی تولید و اجرا 💡شروع یادگیری HTML کدهای HTML پایه اصلی ساختار صفحات وب هستند. با نوشتن آن ها می توانید مت ...
HTML چیست ؟ HTML چیست و چه نقشی در ساخت صفحات وب دارد؟ HTML زبان نشانه گذاری استاندارد وب است و ساختار محتوای هر ...
دسته بندی
جستجو
⏳ در حال پردازش...
لطفا صبر کنید