0Pricing
HTML Academy · บทเรียน

องค์ประกอบ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. องค์ประกอบ form: action, method และ enctype
  2. ชนิด input: text, password, email, number และ tel
  3. องค์ประกอบ label และการเข้าถึง
  4. องค์ประกอบ button: submit, reset และ button
← กลับไปที่ HTML Academy