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

แอตทริบิวต์ตรวจสอบความถูกต้องของฟอร์ม

ใช้แอตทริบิวต์ required, minlength, maxlength, pattern, min, max และ step และจัดรูปแบบสถานะการตรวจสอบด้วยคลาสเทียม :valid กับ :invalid

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

การตรวจสอบในเบราว์เซอร์แบบเนทีฟ

HTML5 มีการตรวจสอบแบบฟอร์มในตัวผ่านแอตทริบิวต์ เมื่อส่งแบบฟอร์ม เบราว์เซอร์จะตรวจสอบแต่ละช่อง หากการตรวจสอบไม่ผ่าน เบราว์เซอร์จะแสดงคำแนะนำข้อผิดพลาดแบบเนทีฟและป้องกันการส่งข้อมูล โดยไม่ต้องใช้ JavaScript สำหรับกรณีพื้นฐาน

required

การเพิ่ม required ให้กับช่องป้อนข้อมูล รายการเลือก หรือพื้นที่ข้อความ จะทำให้ช่องนั้นเป็นช่องบังคับ เบราว์เซอร์จะแสดงข้อผิดพลาดหากช่องว่างเมื่อมีการส่งแบบฟอร์ม

<input type="text" name="name" required>
<select name="plan" required>
  <option value="">Choose plan...</option>
  <option value="free">Free</option>
</select>

minlength และ maxlength

minlength บังคับให้มีจำนวนอักขระอย่างน้อยตามที่กำหนด maxlength ป้องกันไม่ให้ป้อนข้อมูลเกินจำนวนสูงสุด คุณสามารถใช้ทั้งสองอย่างร่วมกันเพื่อบังคับความซับซ้อนของรหัสผ่านหรือจำกัดความยาวความคิดเห็น

<input type="password" name="pass" minlength="12" maxlength="128">
<textarea name="bio" maxlength="500"></textarea>

min, max และ step สำหรับช่องป้อนข้อมูลตัวเลข

min และ max กำหนดช่วงค่าที่ถูกต้องสำหรับช่องป้อนข้อมูลตัวเลขและวันที่ step กำหนดค่าการเพิ่มทีละขั้น ซึ่งมีประโยชน์สำหรับช่วงค่า (เช่น 5%) ความละเอียดทศนิยม หรือวันที่เท่านั้น

<input type="number" min="1" max="10" step="1">
<input type="range" min="0" max="100" step="5">
<input type="date" min="2025-01-01" max="2025-12-31">

pattern — การตรวจสอบด้วยนิพจน์ทั่วไป

pattern รับนิพจน์ทั่วไปของ JavaScript ช่องป้อนข้อมูลต้องตรงกับรูปแบบจึงจะส่งแบบฟอร์มได้ ใส่ title เพื่ออธิบายรูปแบบที่คาดหวังในคำแนะนำข้อผิดพลาดของเบราว์เซอร์

<!-- UK postcode: -->
<input type="text" pattern="[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}"
  title="Enter a valid UK postcode (e.g. SW1A 1AA)">

<!-- Username: letters, digits, underscore, 3-16 chars -->
<input type="text" pattern="[a-zA-Z0-9_]{3,16}" title="3-16 alphanumeric characters">

novalidate — การปิดการตรวจสอบแบบเนทีฟ

เพิ่ม novalidate ให้กับองค์ประกอบ <form> เพื่อปิดการตรวจสอบแบบเนทีฟของเบราว์เซอร์ทั้งหมด ควรทำเช่นนี้เมื่อคุณนำการตรวจสอบด้วย JavaScript แบบกำหนดเองมาใช้ เพื่อให้ผู้ใช้ได้รับประสบการณ์ที่สอดคล้องกัน

<form novalidate id="signup">
  <!-- custom validation in JS -->
</form>

การตรวจสอบความถูกต้องใน JavaScript

API การตรวจสอบข้อจำกัดช่วยให้คุณตรวจสอบความถูกต้องผ่านโปรแกรมได้: input.validity (ออบเจ็กต์ ValidityState), input.checkValidity() (ส่งคืนค่าบูลีน) และ input.setCustomValidity(message) (กำหนดข้อผิดพลาดแบบกำหนดเอง)

const email = document.querySelector('#email');
if (!email.checkValidity()) {
  console.log(email.validationMessage); // browser's error text
  console.log(email.validity.valueMissing); // true if empty
  console.log(email.validity.typeMismatch); // true if not email format
}

setCustomValidity

เรียกใช้ setCustomValidity(message) พร้อมสตริงที่ไม่ว่าง เพื่อทำเครื่องหมายว่าช่องป้อนข้อมูลไม่ถูกต้องพร้อมข้อความกำหนดเอง เรียกใช้พร้อมสตริงว่างเพื่อล้างข้อผิดพลาด วิธีนี้มีประโยชน์กับช่องข้อมูลที่ตรวจสอบโดยเซิร์ฟเวอร์ เช่น การตรวจสอบว่า username ไม่ซ้ำกัน

const username = document.querySelector('#username');
// After async uniqueness check:
if (taken) {
  username.setCustomValidity('This username is already taken.');
} else {
  username.setCustomValidity(''); // valid
}

:valid และ :invalid คลาสเทียม

จัดรูปแบบช่องป้อนข้อมูลที่ถูกต้องและไม่ถูกต้องด้วยคลาสเทียมของ CSS โปรดระวัง: ช่องป้อนข้อมูลจะเป็น :invalid ก่อนที่ผู้ใช้จะโต้ตอบกับช่องนั้น ใช้ :user-invalid (เบราว์เซอร์รุ่นใหม่) หรือ JavaScript เพื่อเพิ่มคลาส “touched” ก่อน

/* Modern approach */
input:user-invalid {
  border-color: #e53e3e;
}
input:user-valid {
  border-color: #38a169;
}

/* Fallback: add .touched class on blur */
.touched:invalid { border-color: #e53e3e; }

ข้อความข้อผิดพลาดแบบกำหนดเองด้วย reportValidity

form.reportValidity() จะแสดงส่วนติดต่อการตรวจสอบความถูกต้องแบบเนทีฟของเบราว์เซอร์สำหรับทุกช่องข้อมูล โปรดใช้หลังจากกำหนดข้อความตรวจสอบแบบกำหนดเองแล้ว เพื่อแสดงข้อความเหล่านั้นแก่ผู้ใช้โดยไม่ต้องรอเหตุการณ์การส่งแบบฟอร์ม

รูปแบบการแสดงข้อผิดพลาดที่เข้าถึงได้

แสดงข้อผิดพลาดในบรรทัดโดยใช้: 1) aria-invalid="true" บนช่องป้อนข้อมูล 2) ย่อหน้าข้อผิดพลาดที่มองเห็นได้และเชื่อมโยงด้วย aria-describedby และ 3) ย้ายโฟกัสไปยังช่องข้อมูลแรกที่ไม่ถูกต้อง วิธีนี้รองรับผู้ใช้ทุกคน รวมถึงผู้ใช้โปรแกรมอ่านหน้าจอ

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

แอตทริบิวต์ใดจำกัดช่องป้อนข้อความให้มี อักขระได้ไม่เกิน 280 ตัว

ทบทวน: แอตทริบิวต์การตรวจสอบแบบฟอร์ม

required, minlength/maxlength, min/max/step และ pattern ล้วนมีการตรวจสอบความถูกต้องแบบเนทีฟของเบราว์เซอร์ให้โดยอัตโนมัติ ใช้ novalidate เมื่อใช้งานการตรวจสอบด้วย JS แบบกำหนดเอง API การตรวจสอบข้อจำกัดช่วยให้ JavaScript เข้าถึงสถานะความถูกต้องได้ จัดรูปแบบข้อผิดพลาดด้วย :user-invalid หลังจากผู้ใช้โต้ตอบกับช่องข้อมูลแล้ว

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

บทเรียน “แอตทริบิวต์ตรวจสอบความถูกต้องของฟอร์ม” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “แอตทริบิวต์ตรวจสอบความถูกต้องของฟอร์ม”

ใช้แอตทริบิวต์ required, minlength, maxlength, pattern, min, max และ step และจัดรูปแบบสถานะการตรวจสอบด้วยคลาสเทียม :valid กับ :invalid คุณปฏิบัติ Frontend Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “แอตทริบิวต์ตรวจสอบความถูกต้องของฟอร์ม” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ตัวควบคุมฟอร์ม: ชนิด input select textarea
  2. ARIA และการเข้าถึง: label role aria-*
  3. HTML5 เชิงความหมาย: เชิงความหมายเทียบกับ div ที่ปะปน
  4. แอตทริบิวต์ตรวจสอบความถูกต้องของฟอร์ม
← กลับไปที่ Frontend Academy