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

องค์ประกอบ button: submit, reset และ button

ใช้ปุ่มเพื่อส่งแบบฟอร์ม ล้างข้อมูล หรือเรียกใช้การทำงานแบบกำหนดเอง

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

องค์ประกอบปุ่ม

องค์ประกอบ <button> เป็นวิธีหลักในการสร้างตัวควบคุมที่คลิกได้:

<button type="submit">Submit</button>
<button type="reset">Clear Form</button>
<button type="button">Do Something</button>

<!-- Three types, each with a different default behavior -->
<!-- Always specify type — the default is submit inside forms -->

type=submit

type="submit" จะส่งแบบฟอร์มเมื่อคลิก:

<form action="/register" method="post">
  <input type="email" name="email">
  <button type="submit">Create Account</button>
</form>
<!-- Triggers form validation, then sends the form data -->
<!-- Also triggered by pressing Enter in most text inputs -->

type=reset

type="reset" จะล้างช่องกรอกข้อมูลทั้งหมดของแบบฟอร์มกลับเป็นค่าเริ่มต้น:

<form>
  <input type="text" name="name" value="">  <!-- empty default -->
  <input type="number" name="qty" value="1">  <!-- default: 1 -->
  <button type="reset">Clear</button>
</form>
<!-- Clicking reset restores qty to 1 and clears name -->
<!-- Use sparingly — users often accidentally reset forms -->

type=button

type="button" ไม่มีการทำงานใดเป็นค่าเริ่มต้น — ให้เชื่อมต่อ JavaScript:

<button type="button" id="toggle-theme">Toggle Dark Mode</button>

<script>
document.getElementById('toggle-theme').addEventListener('click', () => {
  document.body.classList.toggle('dark');
});
</script>
<!-- type="button" prevents accidental form submission
     Always use this for non-submit buttons -->

ปุ่มเทียบกับ input[type=submit]

ควรใช้ <button> แทน <input type="submit">:

<!-- Old way (limited): -->
<input type="submit" value="Submit">

<!-- Modern way (flexible — can contain HTML): -->
<button type="submit">
  <svg><!-- icon --></svg>
  Submit Form
</button>
<!-- button can contain icons, emphasis, and any inline HTML
     input type=submit can only have plain text via the value attribute -->

ปุ่มที่ปิดใช้งาน

ปิดใช้งานปุ่มด้วยแอตทริบิวต์ disabled:

<button type="submit" disabled>Submit</button>
<!-- Disabled buttons:
  - Cannot be clicked
  - Not in tab order
  - NOT submitted with the form
  - Browser renders them grayed out -->

<!-- Enable/disable with JavaScript: -->
btn.disabled = true;
btn.disabled = false;

รูปแบบสถานะกำลังโหลด

แสดงสถานะกำลังโหลดขณะที่กำลังส่งแบบฟอร์ม:

<button type="submit" id="submit-btn">
  <span id="btn-text">Submit</span>
  <span id="btn-spinner" hidden aria-hidden="true">⏳</span>
</button>

<script>
form.addEventListener('submit', () => {
  document.getElementById('submit-btn').disabled = true;
  document.getElementById('btn-text').textContent = 'Submitting...';
  document.getElementById('btn-spinner').hidden = false;
  document.getElementById('btn-spinner').removeAttribute('aria-hidden');
});
</script>

การแทนที่ formaction และ formmethod

แทนที่การทำงานหรือวิธีการของแบบฟอร์มบนปุ่มที่ระบุ:

<form action="/save" method="post">
  <input type="text" name="title">

  <!-- Save: uses form defaults -->
  <button type="submit">Save Draft</button>

  <!-- Publish: overrides action and method -->
  <button type="submit" formaction="/publish" formmethod="post">
    Publish Now
  </button>
</form>

ปุ่มที่ใช้ ARIA

ปุ่มที่สร้างขึ้นเองต้องใช้ ARIA หากมีลักษณะแตกต่างจากปุ่มดั้งเดิม:

<!-- Icon-only button -->
<button type="button" aria-label="Close dialog">
  <svg aria-hidden="true"><!-- X icon --></svg>
</button>

<!-- Toggle button -->
<button type="button" aria-pressed="false" id="bold-btn">
  Bold
</button>
<script>
document.getElementById('bold-btn').addEventListener('click', function() {
  const pressed = this.getAttribute('aria-pressed') === 'true';
  this.setAttribute('aria-pressed', !pressed);
});
</script>

แนวทางปฏิบัติที่ดีด้านการเข้าถึงปุ่ม

รายการตรวจสอบการเข้าถึงปุ่ม:

  • ระบุ type เสมอ — อย่าพึ่งพาค่าเริ่มต้น
  • ใช้ aria-label กับปุ่มที่มีเฉพาะไอคอน
  • ใช้ aria-pressed กับปุ่มสลับ
  • ปุ่มที่ปิดใช้งาน: พิจารณาใช้ aria-disabled="true" ร่วมกับ JavaScript เพื่อให้ยังอยู่ในลำดับการโฟกัสได้
  • อย่าใช้ <div> หรือ <span> เป็นปุ่ม

พื้นที่คลิกและเป้าหมายการสัมผัส

ปุ่มต้องมีขนาดเป้าหมายการแตะที่เพียงพอสำหรับผู้ใช้หน้าจอสัมผัส:

button {
  min-height: 44px;   /* Apple HIG minimum */
  min-width: 44px;    /* WCAG 2.5.5 (AAA) recommends 44x44 -->
  padding: 0.5rem 1rem;
  cursor: pointer;
}

/* Increase tap area without changing visual size: */
button {
  position: relative;
}
button::before {
  content: '';
  position: absolute;
  inset: -8px;
}

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

จะเกิดอะไรขึ้นหากละแอตทริบิวต์ type บนปุ่มภายในแบบฟอร์ม

สรุป: องค์ประกอบปุ่ม

สาระสำคัญของปุ่ม:

  • type="submit" — ส่งแบบฟอร์ม
  • type="reset" — รีเซ็ตช่องกรอกข้อมูลทั้งหมดเป็นค่าเริ่มต้น
  • type="button" — ไม่มีการทำงานเริ่มต้น ให้เชื่อมต่อ JavaScript
  • ระบุ type เสมอ — ค่าเริ่มต้นคือ submit
  • ควรใช้ <button> แทน <input type="submit">
  • ใช้ aria-label กับปุ่มที่มีเฉพาะไอคอน

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

บทเรียน “องค์ประกอบ button: submit, reset และ button” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “องค์ประกอบ button: submit, reset และ button”

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

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

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

บทเรียน “องค์ประกอบ button: submit, reset และ button” ใช้เวลานานแค่ไหน

บทเรียน 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