องค์ประกอบ form: action, method และ enctype
ตั้งค่าองค์ประกอบแบบฟอร์มด้วย action, method และ enctype
องค์ประกอบ form: action, method และ enctype เป็นบทเรียน HTML Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน HTML Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน
ฟอร์มคืออะไร
ฟอร์ม HTML เป็นวิธีหลักที่ผู้ใช้ใช้ส่งข้อมูลไปยังเซิร์ฟเวอร์:
- การเข้าสู่ระบบและการลงทะเบียน
- คำค้นหา
- การชำระเงินและการสั่งซื้อ
- การติดต่อและความคิดเห็น
ฟอร์มทุกฟอร์มเริ่มต้นด้วยองค์ประกอบ <form>
องค์ประกอบ form
องค์ประกอบ <form> ครอบคลุมตัวควบคุมทั้งหมดของฟอร์ม:
<form action="/submit" method="post">
<!-- form controls go here -->
<button type="submit">Send</button>
</form>
<!-- When the user submits, the browser sends the form data
to the URL specified in action using the method specified -->แอตทริบิวต์ action
แอตทริบิวต์ action ระบุว่าจะส่งข้อมูลฟอร์มไปที่ใด:
<form action="/api/login">...</form> <!-- relative path -->
<form action="https://api.example.com/form">...</form> <!-- absolute -->
<form action="">...</form> <!-- current URL (empty) -->
<form>...</form> <!-- no action = current URL -->แอตทริบิวต์ method
แอตทริบิวต์ method ควบคุมวิธีส่งข้อมูล:
<form method="get">...</form>
<!-- GET: appends data to URL as query string
example.com/search?q=html&sort=date
Used for: search forms, filters, bookmarkable results -->
<form method="post">...</form>
<!-- POST: sends data in the request body
Data is not visible in the URL
Used for: login, registration, file uploads, sensitive data -->GET เทียบกับ POST
GET และ POST มีลักษณะแตกต่างกัน:
- GET — ข้อมูลอยู่ใน URL (ความยาวจำกัด) สร้างบุ๊กมาร์กได้ แคชได้ และการส่งซ้ำให้ผลลัพธ์เดิม
- POST — ข้อมูลอยู่ในเนื้อหาคำขอ (ไม่จำกัดความยาว) สร้างบุ๊กมาร์กไม่ได้ ไม่ถูกแคช และการส่งซ้ำอาจเปลี่ยนแปลงผลลัพธ์
หลักง่าย ๆ คือ หากการส่งข้อมูลไม่เปลี่ยนสถานะของเซิร์ฟเวอร์ ให้ใช้ GET แต่หากเปลี่ยน ให้ใช้ POST
แอตทริบิวต์ enctype
แอตทริบิวต์ enctype ควบคุมวิธีเข้ารหัสข้อมูลฟอร์มสำหรับคำขอ POST:
<!-- Default: URL-encoded (text/form fields) -->
<form method="post" enctype="application/x-www-form-urlencoded">
<!-- For file uploads: multipart -->
<form method="post" enctype="multipart/form-data">
<input type="file" name="avatar">
</form>
<!-- Plain text (rare): -->
<form method="post" enctype="text/plain">แอตทริบิวต์ novalidate
แอตทริบิวต์ novalidate ปิดใช้การตรวจสอบความถูกต้องในตัวของเบราว์เซอร์:
<form action="/submit" method="post" novalidate>
<!-- Validation handled by JavaScript instead -->
<input type="email" name="email">
<button type="submit">Submit</button>
</form>แอตทริบิวต์ target ในฟอร์ม
แอตทริบิวต์ target ควบคุมตำแหน่งที่แสดงผลการตอบกลับ:
<form action="/search" target="_blank">
<!-- Response opens in a new tab -->
</form>
<!-- Values: _blank, _self, _parent, _top, or a frame name -->
<!-- Rarely used — most forms stay on the same page or use AJAX -->autocomplete ในฟอร์ม
แอตทริบิวต์ autocomplete ควบคุมการเติมข้อมูลอัตโนมัติของเบราว์เซอร์:
<!-- Off: disable autofill for the entire form -->
<form autocomplete="off">
<!-- On (default): allow autofill -->
<form autocomplete="on">
<!-- Better: control at the field level:
<input type="email" autocomplete="email">
<input type="current-password" autocomplete="current-password">
-->การส่งฟอร์มด้วย JavaScript
ป้องกันการส่งฟอร์มตามค่าเริ่มต้นและจัดการด้วย JavaScript:
<form id="contact-form" action="/contact" method="post">
<input type="text" name="name">
<button type="submit">Send</button>
</form>
<script>
document.getElementById('contact-form').addEventListener('submit', async (e) => {
e.preventDefault(); // stop normal browser submission
const data = new FormData(e.target);
const res = await fetch('/contact', { method: 'POST', body: data });
// handle response...
});
</script>action และ method ร่วมกัน
ตัวอย่างฟอร์มฉบับสมบูรณ์ที่มี action และ method ถูกต้อง:
<form action="/api/newsletter" method="post">
<label for="email">Email address</label>
<input type="email" id="email" name="email" required>
<button type="submit">Subscribe</button>
</form>
<!-- POST because: creating a subscription = server state change -->ตรวจสอบความเข้าใจ
ควรใช้ method ใดของฟอร์มเมื่ออัปโหลดไฟล์
ทบทวน: องค์ประกอบ form
สาระสำคัญขององค์ประกอบฟอร์ม:
action— URL ที่รับข้อมูลฟอร์มmethod="get"— ข้อมูลอยู่ใน URL (การค้นหา ตัวกรอง)method="post"— ข้อมูลอยู่ในเนื้อหาคำขอ (ข้อมูลสำคัญ การเปลี่ยนแปลงสถานะ)enctype="multipart/form-data"— จำเป็นสำหรับการอัปโหลดไฟล์novalidate— ปิดใช้การตรวจสอบของเบราว์เซอร์
คำถามที่พบบ่อย
บทเรียน “องค์ประกอบ form: action, method และ enctype” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “องค์ประกอบ form: action, method และ enctype” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส HTML Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “องค์ประกอบ form: action, method และ enctype”
ตั้งค่าองค์ประกอบแบบฟอร์มด้วย action, method และ enctype คุณปฏิบัติ HTML Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน HTML Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน HTML Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “องค์ประกอบ form: action, method และ enctype” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน HTML Academy นี้ได้ไหม
ได้ บทเรียน HTML Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- องค์ประกอบ form: action, method และ enctype
- ชนิด input: text, password, email, number และ tel
- องค์ประกอบ label และการเข้าถึง
- องค์ประกอบ button: submit, reset และ button