هر کنترل در ارسال شرکت نمیکند
برای انتخاب فایل از type="file" استفاده کن. در ارسال فایل به سرور با POST، form معمولاً enctype="multipart/form-data" میخواهد. accept پیشنهاد نوع فایل در انتخابگر است، نه تضمین اعتبار یا امنیت فایل. multiple امکان چند فایل را میدهد.
<form action="/upload" method="post" enctype="multipart/form-data">
<label for="portfolio">نمونهکار تصویری</label>
<input id="portfolio" name="portfolio" type="file" accept="image/*">
<input type="hidden" name="workshop_id" value="html-01">
<button type="submit">ارسال نمونهکار</button>
</form>
hidden داده را از فرم ظاهری پنهان میکند؛ کاربر همچنان میتواند مقدار را عوض کند. پس hidden محل اعتماد یا نگهداری رمز نیست.
کنترل disabled غیرفعال است و معمولاً ارسال نمیشود و در مسیر Tab نیست. readonly در ورودیهای متنیِ پشتیبانیشده قابل ویرایش نیست، اما میتواند فوکوس بگیرد و با name ارسال شود. readonly برای همهٔ کنترلها مثل select یا checkbox کاربرد ندارد.
value مقدار اولیهٔ ورودی است، اما مقدار کنونی را کاربر تغییر میدهد. name را به هر دادهٔ لازم بده. برای اتصال کنترلی بیرون فرم میتوان ویژگی form را برابر id فرم گذاشت. ویژگیهای formaction و formmethod روی دکمهٔ ارسال میتوانند مقصد و روش همان ارسال را تغییر دهند.
آزمایش دستی: دو input با name بساز؛ یکی readonly و یکی disabled. با GET و دادههای ساختگی، تفاوت دادهٔ ارسالی را در نشانی ببین.