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

กลุ่มช่องทำเครื่องหมายและปุ่มตัวเลือก

ให้ผู้ใช้เลือกตัวเลือกหนึ่งรายการหรือหลายรายการจากกลุ่ม

กลุ่มช่องทำเครื่องหมายและปุ่มตัวเลือก เป็นบทเรียน HTML Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน HTML Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

ช่องทำเครื่องหมาย

ช่องทำเครื่องหมายช่วยให้ผู้ใช้เลือกได้ตั้งแต่ศูนย์ หนึ่งรายการ หรือหลายรายการ:

<label>
  <input type="checkbox" name="terms" value="agreed"> I agree to the Terms
</label>

<!-- Each checkbox is independent -->
<!-- checked attribute = pre-checked -->
<input type="checkbox" name="newsletter" value="yes" checked>

การส่งค่าของช่องทำเครื่องหมาย

ช่องทำเครื่องหมายจะส่งค่าเฉพาะเมื่อถูกเลือก:

<form>
  <input type="checkbox" name="hobby" value="reading"> Reading<br>
  <input type="checkbox" name="hobby" value="coding"> Coding<br>
  <input type="checkbox" name="hobby" value="gaming"> Gaming<br>
</form>
<!-- If reading and coding are checked:
     hobby=reading&hobby=coding -->
<!-- Unchecked boxes send nothing -->

กลุ่มช่องทำเครื่องหมายด้วย fieldset

จัดกลุ่มช่องทำเครื่องหมายที่เกี่ยวข้องด้วย fieldset + legend:

<fieldset>
  <legend>Select your interests</legend>

  <label><input type="checkbox" name="interest" value="html"> HTML</label>
  <label><input type="checkbox" name="interest" value="css"> CSS</label>
  <label><input type="checkbox" name="interest" value="js"> JavaScript</label>
  <label><input type="checkbox" name="interest" value="python"> Python</label>
</fieldset>

ปุ่มตัวเลือก

ปุ่มตัวเลือกช่วยให้ผู้ใช้เลือกได้พอดีหนึ่งรายการจากกลุ่ม:

<fieldset>
  <legend>Preferred plan</legend>

  <label><input type="radio" name="plan" value="free"> Free</label>
  <label><input type="radio" name="plan" value="pro"> Pro</label>
  <label><input type="radio" name="plan" value="enterprise"> Enterprise</label>
</fieldset>
<!-- All radios in a group share the same name attribute -->
<!-- Selecting one deselects the others -->

แอตทริบิวต์ checked

เลือกปุ่มตัวเลือกหรือช่องทำเครื่องหมายไว้ล่วงหน้าด้วยแอตทริบิวต์ checked:

<fieldset>
  <legend>Skill level</legend>
  <label><input type="radio" name="level" value="beginner" checked> Beginner</label>
  <label><input type="radio" name="level" value="intermediate"> Intermediate</label>
  <label><input type="radio" name="level" value="advanced"> Advanced</label>
</fieldset>

การจัดรูปแบบช่องทำเครื่องหมายและปุ่มตัวเลือก

ช่องทำเครื่องหมายที่จัดรูปแบบเองโดยใช้เทคนิค label:

<label class="custom-check">
  <input type="checkbox" name="agree">
  <span class="checkmark"></span>
  I agree
</label>

/* Hide native input, style the span: */
.custom-check input { opacity: 0; width: 0; }
.checkmark {
  width: 1.25rem; height: 1.25rem;
  border: 2px solid #ddd; border-radius: 3px;
  display: inline-block; vertical-align: middle;
}
.custom-check input:checked + .checkmark { background: #0070f3; }

สถานะ indeterminate

ช่องทำเครื่องหมายสามารถมีสถานะ indeterminate ได้ (ไม่ใช่ทั้งถูกเลือกและไม่ได้เลือก):

<input type="checkbox" id="select-all">

<script>
// Set via JavaScript only -- no HTML attribute
document.getElementById('select-all').indeterminate = true;
// Visually shown as a dash (−) in most browsers
// Used for "select all" when some children are checked
</script>

radio ที่ไม่มีการเลือกเริ่มต้น

บางครั้งการไม่เลือกปุ่มตัวเลือกไว้ล่วงหน้าก็เหมาะสมกว่า:

  • การเลือกไว้ล่วงหน้าสื่อว่าตัวเลือกนั้นเป็นตัวเลือกที่แนะนำ
  • สำหรับตัวเลือกที่จำเป็นแต่ไม่มีค่าเริ่มต้นที่ชัดเจน (เพศ แผนการใช้งาน) ให้ปล่อยว่างไว้
  • เพิ่ม required เพื่อให้แน่ใจว่าผู้ใช้เลือกอย่างชัดเจน
<fieldset>
  <legend>Gender</legend>
  <label><input type="radio" name="gender" value="m" required> Male</label>
  <label><input type="radio" name="gender" value="f" required> Female</label>
  <label><input type="radio" name="gender" value="nb" required> Non-binary</label>
  <label><input type="radio" name="gender" value="prefer_not" required> Prefer not to say</label>
</fieldset>

ช่องทำเครื่องหมาย: checked เทียบกับ value

สิ่งสำคัญสองประการเกี่ยวกับการส่งค่าของช่องทำเครื่องหมาย:

<!-- The value sent when checked: -->
<input type="checkbox" name="subscribe" value="yes">
<!-- Submits: subscribe=yes when checked -->
<!-- If value is omitted, default value is 'on' -->

<!-- JavaScript checked state: -->
const cb = document.querySelector('input[name="subscribe"]');
console.log(cb.checked);    // true or false
console.log(cb.value);      // 'yes' (always, even when unchecked)

การนำทางกลุ่มปุ่มตัวเลือกด้วยแป้นพิมพ์

การทำงานของแป้นพิมพ์สำหรับกลุ่มปุ่มตัวเลือก:

  • Tab จะย้ายโฟกัสเข้าสู่กลุ่มไปยังปุ่มตัวเลือกที่เลือกไว้หรือปุ่มแรก
  • ปุ่มลูกศร (↑/↓ หรือ ←/→) ใช้เลื่อนวนไปตามตัวเลือก
  • Tab จะย้ายโฟกัสออกจากกลุ่มไปยังองค์ประกอบถัดไปที่รับโฟกัสได้

รูปแบบเลือกทั้งหมด

รูปแบบการเลือกหรือยกเลิกการเลือกช่องทำเครื่องหมายทั้งหมด:

<label>
  <input type="checkbox" id="select-all"> Select all
</label>
<fieldset id="items">
  <label><input type="checkbox" class="item" value="1"> Item 1</label>
  <label><input type="checkbox" class="item" value="2"> Item 2</label>
  <label><input type="checkbox" class="item" value="3"> Item 3</label>
</fieldset>
<script>
document.getElementById('select-all').addEventListener('change', function() {
  document.querySelectorAll('.item').forEach(cb => cb.checked = this.checked);
});
</script>

ตรวจสอบอย่างรวดเร็ว

กฎของแอตทริบิวต์ name ข้อใดทำให้ปุ่มตัวเลือกอยู่ในกลุ่มเดียวกัน

สรุป: ช่องทำเครื่องหมายและปุ่มตัวเลือก

สาระสำคัญของช่องทำเครื่องหมายและปุ่มตัวเลือก:

  • ช่องทำเครื่องหมาย — เลือกได้หลายรายการ และส่งค่าเฉพาะเมื่อถูกเลือก
  • ปุ่มตัวเลือก — เลือกได้พอดีหนึ่งรายการ และจัดกลุ่มด้วย name
  • ทั้งสองแบบใช้แอตทริบิวต์ checked สำหรับการเลือกไว้ล่วงหน้า
  • ครอบด้วย <fieldset> + <legend>
  • ใช้ปุ่มลูกศรนำทางภายในกลุ่มปุ่มตัวเลือก

คำถามที่พบบ่อย

บทเรียน “กลุ่มช่องทำเครื่องหมายและปุ่มตัวเลือก” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “กลุ่มช่องทำเครื่องหมายและปุ่มตัวเลือก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส HTML Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “กลุ่มช่องทำเครื่องหมายและปุ่มตัวเลือก”

ให้ผู้ใช้เลือกตัวเลือกหนึ่งรายการหรือหลายรายการจากกลุ่ม คุณปฏิบัติ HTML Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน HTML Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน HTML Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “กลุ่มช่องทำเครื่องหมายและปุ่มตัวเลือก” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน HTML Academy นี้ได้ไหม

ได้ บทเรียน HTML Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. เมนูแบบดรอปดาวน์ด้วย Select และ option
  2. Textarea สำหรับการป้อนข้อมูลหลายบรรทัด
  3. กลุ่มช่องทำเครื่องหมายและปุ่มตัวเลือก
  4. Datalist สำหรับการเติมข้อความอัตโนมัติ
← กลับไปที่ HTML Academy