ใน HTML5 มี Form Attributes หลากหลายรูปแบบที่สามารถใช้ในการควบคุมการทำงานของฟอร์ม เช่น การกำหนดลักษณะของการส่งข้อมูล, การตั้งค่าปลายทาง, การจัดการข้อมูล, การเปิดปิดการใช้งาน เป็นต้น
1. action
- ใช้กำหนด URL ที่ฟอร์มจะส่งข้อมูลไปเมื่อทำการส่ง (submit) ฟอร์ม
- ค่า: URL ที่ต้องการให้ส่งข้อมูลไป เช่น ไฟล์ PHP หรือไฟล์อื่นๆ ที่ใช้ประมวลผลข้อมูลจากฟอร์ม
ตัวอย่าง
HTML
<form action="submit_form.php">
<input type="text" name="username">
<input type="submit" value="Submit">
</form>2. method
- ใช้กำหนดวิธีการส่งข้อมูลจากฟอร์มไปยังเซิร์ฟเวอร์ มีสองค่าที่นิยมใช้:
GETส่งข้อมูลใน URL (ข้อดี: ดูได้ง่าย ข้อเสีย: ข้อมูลที่มากเกินไปไม่สามารถส่งได้)POSTส่งข้อมูลในส่วนของ body (ข้อดี: ส่งข้อมูลได้มากกว่า และปลอดภัยกว่าในบางสถานการณ์)
ตัวอย่าง
HTML
<form action="submit_form.php" method="POST">
<input type="text" name="username">
<input type="submit" value="Submit">
</form>ใช้ POST เมื่อต้องการส่งข้อมูลที่เป็นความลับ เช่น รหัสผ่าน หรือเมื่อส่งข้อมูลจำนวนมาก ขณะที่ GET เหมาะสำหรับการส่งข้อมูลขนาดเล็กที่ไม่สำคัญ
3. enctype
- ใช้กำหนดประเภทของการเข้ารหัสข้อมูลเมื่อใช้ method
POSTสำหรับฟอร์มที่มีการอัปโหลดไฟล์หรือส่งข้อมูลที่มีหลายส่วนapplication/x-www-form-urlencoded: ค่าดีฟอลต์multipart/form-data: ใช้เมื่อมีการอัปโหลดไฟล์text/plain: ส่งข้อมูลเป็น text แบบตรงๆ
ตัวอย่าง
HTML
<form action="/upload_file.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file_upload">
<input type="submit" value="Upload">
</form>4. target
- ใช้กำหนดว่าผลลัพธ์จากการส่งฟอร์มจะไปเปิดในหน้าต่างไหน เช่น:
_self(ค่าเริ่มต้น): เปิดในหน้าเดียวกับฟอร์ม_blank: เปิดในแท็บหรือหน้าต่างใหม่_parent: เปิดในเฟรมพาเรนต์ของฟอร์ม_top: เปิดในหน้าต่างหลักสุด
ตัวอย่าง:
HTML
<form action="submit_form.php" target="_blank">
<input type="text" name="username">
<input type="submit" value="Submit">
</form>5. novalidate
- ใช้ปิดการตรวจสอบข้อมูล (validation) ที่เบราว์เซอร์ทำเมื่อผู้ใช้กดส่งฟอร์ม
- เมื่อใช้
novalidateเบราว์เซอร์จะไม่ตรวจสอบว่าผู้ใช้กรอกข้อมูลถูกต้องหรือไม่ เช่น ค่า input type email
ตัวอย่าง
HTML
<form action="/submit_form.php" novalidate>
<input type="email" name="email">
<input type="submit" value="Submit">
</form>6. autocomplete
- ใช้กำหนดว่าจะให้เบราว์เซอร์เปิดการใช้งานการกรอกข้อมูลอัตโนมัติหรือไม่ (auto-fill)
- ค่า:
on(เปิดใช้งาน) หรือoff(ปิดใช้งาน)
ตัวอย่าง
HTML
<form action="submit_form.php" autocomplete="off">
<input type="text" name="username">
<input type="submit" value="Submit">
</form>7. name
กำหนดชื่อให้กับฟอร์ม ซึ่งสามารถใช้อ้างอิงได้ใน JavaScript
HTML
<form name="userForm" action="/submit_form.php">
<input type="text" name="username">
<input type="submit" value="Submit">
</form>8. accept-charset
- ใช้กำหนดรูปแบบการเข้ารหัสของตัวอักษรที่ฟอร์มจะส่ง เช่น
UTF-8,ISO-8859-1
ตัวอย่าง
HTML
<form action="/submit_form.php" accept-charset="UTF-8">
<input type="text" name="username">
<input type="submit" value="Submit">
</form>9. rel
- ใช้สำหรับกำหนดความสัมพันธ์ระหว่างฟอร์มกับ resource อื่น ๆ โดยเฉพาะเมื่อใช้
target="_blank"
ตัวอย่าง
HTML
<form action="submit_form.php" target="_blank" rel="noopener">
<input type="text" name="username">
<input type="submit" value="Submit">
</form>10. onsubmit
ใช้ในการระบุฟังก์ชัน JavaScript ที่จะถูกเรียกใช้เมื่อมีการส่งข้อมูลฟอร์ม
HTML
<form action="/submit_form.php" onsubmit="return validateForm()">
<input type="text" name="username">
<input type="submit" value="Submit">
</form>
<script>
function validateForm() {
let x = document.forms["userForm"]["username"].value;
if (x == "") {
alert("Username must be filled out");
return false;
}
return true;
}
</script>สรุป
Form Attributes ใน HTML5 มีหลายประเภทที่สามารถใช้เพื่อควบคุมการทำงานของฟอร์มในหลายด้าน ทั้งการกำหนดปลายทางของฟอร์ม การกำหนดรูปแบบการส่งข้อมูล การจัดการการเข้ารหัส และการควบคุมลักษณะการเปิดหน้าต่างใหม่
