ویژگیهای فرم HTML
فرمها اسکلت را دادند. ویژگیهای فرم رفتار را دقیق میکنند — action خالی، get در برابر post، autofill، رد چکهای توکار، و نامگذاری خود form. نوع input و form= بعداً.
چرا ویژگیهای فرم مهماند
دو فرم شبیه هم میتوانند رفتار متفاوت داشته باشند. attribute روی form مقصد، شیوهٔ HTTP، autofill و اعتبارسنجی را عوض میکند بدون فیلد تازه.
پاسخ مستقیم
۱) action و method هسته. ۲) action خالی معمولاً صفحهٔ فعلی. ۳) autocomplete on|off. ۴) novalidate فقط وقتی عمداً چکها را رد میکنید. ۵) id/name روی form برای اسکریپت.
📊 Form attributes at a glance
| Attribute | Role | Beginner tip |
|---|---|---|
| action | Where the browser sends the data | Empty often means “this page” |
| method | get (query string) or post (request body) | Prefer post for private or large data |
| autocomplete | Autofill hint for the form | off for sensitive practice forms |
| novalidate | Skip built-in HTML checks on submit | Demo tool — not a production default |
| name / id | Identify the form element itself | Useful when scripts or CSS target the form |
فرم تماس با attribute سطح فرم
اسکلت اشتراک را گسترش دهید: فیلد برچسبدار بماند؛ تگ باز form را با attributeهای واقعی تزئین کنید.
<form
id="contact"
name="contact"
action="/contact"
method="post"
autocomplete="on">
<label for="full-name">Name</label>
<input id="full-name" name="full_name" type="text" required>
<label for="msg">Message</label>
<textarea id="msg" name="message" rows="3" required></textarea>
<button type="submit">Send</button>
</form>
خواندن دموی تماس
- id و name فرم را شناسایی میکنند (جدا از name فیلد)
- action مسیر صریح است
- method=post پیام را از نوار آدرس دور نگه میدارد
- autocomplete=on اجازهٔ autofill میدهد
- name فیلدها کلید payload است
- required سطح فیلد است؛ novalidate در دموی بعد
جستجوی GET و novalidate اختیاری
جستجو اغلب method=get دارد تا کوئری در URL بماند. دادهٔ حساس نه. با autocomplete=off برای تمرین. novalidate فقط برای دموی خاص.
<form action="/search" method="get" autocomplete="off">
<label for="q">Search</label>
<input id="q" name="q" type="search">
<button type="submit">Go</button>
</form>
<!-- Demo-only: skip built-in checks
<form action="/demo" method="post" novalidate>
...
</form>
-->
خواندن دموی جستجو
- get بعد از submit مقدار را به URL میچسباند
- autocomplete=off autofill را کم میکند
- بدون required فیلد خالی هم میرود
- مثال novalidate فقط یادآوری است
- هرگز get برای رمز یا پیام خصوصی
action خالی و GET در برابر POST
- action خالی یا حذفشده → URL فعلی
- get برای فیلتر و جستجو
- post برای ثبتنام و پیام
- method بهتنهایی امنیت نیست — سرور هنوز اعتبارسنجی میکند
تمرین — تنظیم attributeهای فرم
- action را خالی کنید و ببینید به صفحهٔ فعلی میرود
- method جستجو را بین get و post عوض کنید
- autocomplete=off روی تماس
- موقتاً novalidate با required
- novalidate را بردارید
- id فرم و name فیلدها را تأیید کنید
- جمله: attributeها مقصد، شیوه، autofill و چک را تنظیم میکنند
اشتباهات آسان
- تعجب از action خالی → صفحهٔ فعلی
- رمز با method=get
- novalidate دائمی در صفحهٔ زنده
- قاطی کردن name/id فرم با name فیلد
- فکر کردن autocomplete=off ضمانت امنیتی است
- جابهجایی معنای action و method
خلاصه
- ویژگیهای فرم رفتار ارسال را دقیق میکنند
- action + method هسته؛ خالی → URL فعلی
- autocomplete و novalidate ابزار اختیاریاند
- name/id فرم را شناسایی میکنند؛ name فیلد داده را کلید میزند
- برای دادهٔ خصوصی post
- بعدی: عناصر فرم
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود