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

กฎการตรวจสอบและข้อความแสดงข้อผิดพลาด

ใช้กฎการตรวจสอบในตัว (required, minLength, pattern) และแสดงข้อความแสดงข้อผิดพลาด

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

ยินดีต้อนรับ

ในบทเรียนนี้ คุณจะเพิ่มกฎการตรวจสอบที่มีมาให้ในฟิลด์ของ React Hook Form และแสดงข้อความแสดงข้อผิดพลาดที่อ่านเข้าใจง่ายใต้แต่ละอินพุต

กฎการตรวจสอบที่มีมาให้

ส่งออบเจ็กต์ rules เป็นอาร์กิวเมนต์ตัวที่สองให้ register() กฎที่มีมาให้ ได้แก่ `required`, `minLength`, `maxLength`, `min`, `max`, `pattern` และ `validate`
<input
  {...register('email', {
    required: 'Email is required',
    pattern: {
      value: /^[^@]+@[^@]+\.[^@]+$/,
      message: 'Invalid email address',
    },
  })}
/>

ฟิลด์ที่จำเป็น

กำหนด `required` เป็นสตริงเพื่อบังคับให้กรอกฟิลด์ สตริงนั้นจะกลายเป็นข้อความแสดงข้อผิดพลาด หากกำหนดเป็น `true` ระบบจะใช้ข้อความทั่วไป
register('name', { required: 'Name is required' })
// or
register('name', { required: true })

ข้อจำกัดด้านความยาว

ใช้ `minLength` และ `maxLength` ร่วมกับออบเจ็กต์ `{ value, message }` เพื่อกำหนดขีดจำกัดจำนวนอักขระและข้อความแสดงข้อผิดพลาดแบบกำหนดเอง
register('username', {
  minLength: { value: 3, message: 'At least 3 characters' },
  maxLength: { value: 20, message: 'At most 20 characters' },
})

การตรวจสอบด้วยรูปแบบ

กฎ `pattern` รับค่า RegExp ใช้กฎนี้เพื่อตรวจสอบรูปแบบอีเมล หมายเลขโทรศัพท์ หรือรูปแบบสตริงใด ๆ
register('phone', {
  pattern: {
    value: /^[0-9]{10,11}$/,
    message: 'Enter a valid phone number',
  },
})

การแสดงข้อผิดพลาด

อ่านออบเจ็กต์ `errors` จาก formState ฟิลด์แต่ละรายการที่ตรวจสอบไม่ผ่านจะมีรายการพร้อมคุณสมบัติ `message` ให้เรนเดอร์รายการดังกล่าวใต้อินพุตตามเงื่อนไข
const { register, handleSubmit, formState: { errors } } = useForm();

<input {...register('email', { required: 'Required' })} />
{errors.email && <p className="error">{errors.email.message}</p>}

การตรวจสอบแบบกำหนดเองด้วย validate

กฎ `validate` รับฟังก์ชันที่คืนค่า `true` เมื่อถูกต้อง หรือคืนสตริงข้อผิดพลาดเมื่อไม่ถูกต้อง ใช้กฎนี้กับตรรกะทางธุรกิจที่กฎซึ่งมีมาให้ไม่สามารถแสดงได้
register('age', {
  validate: value =>
    parseInt(value) >= 18 || 'You must be at least 18',
})

ตัวตรวจสอบแบบกำหนดเองหลายรายการ

ส่งออบเจ็กต์ของตัวตรวจสอบที่ตั้งชื่อไว้ให้ `validate` เพื่อเรียกใช้การตรวจสอบแบบกำหนดเองหลายรายการกับฟิลด์เดียวกัน
register('password', {
  validate: {
    hasUpper: v => /[A-Z]/.test(v) || 'Needs uppercase',
    hasDigit: v => /[0-9]/.test(v) || 'Needs a number',
  }
})

การแสดงจำนวนข้อผิดพลาด

นับข้อผิดพลาดทั้งหมดเพื่อเปิดหรือปิดปุ่มส่งฟอร์ม หรือแสดงสรุป ใช้ Object.keys(errors).length
const hasErrors = Object.keys(errors).length > 0;
<button type="submit" disabled={hasErrors}>Submit</button>

การกำหนดรูปแบบอินพุตที่มีข้อผิดพลาด

ใช้คลาส CSS กับอินพุตที่มีข้อผิดพลาดเพื่อแสดงเส้นขอบสีแดง ตรวจสอบ errors[fieldName] เพื่อใช้คลาสตามเงื่อนไข
<input
  {...register('email', { required: true })}
  className={errors.email ? 'input-error' : ''}
/>

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

คุณจะแสดงข้อความแสดงข้อผิดพลาดสำหรับฟิลด์ชื่อ 'email' ใน React Hook Form ได้อย่างไร

สรุปทบทวน

เพิ่มกฎการตรวจสอบเป็นอาร์กิวเมนต์ตัวที่สองของ register(): required, minLength, maxLength, pattern, min, max และ validate อ่าน errors[fieldName].message จาก formState เพื่อแสดงข้อความ

บทเรียนถัดไป

บทเรียนถัดไป: **การตรวจสอบสคีมาด้วย Zod** — คุณจะผสานรวม @hookform/resolvers และสคีมา Zod เพื่อการตรวจสอบฟอร์มที่ปลอดภัยด้านชนิดข้อมูล

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

บทเรียน “กฎการตรวจสอบและข้อความแสดงข้อผิดพลาด” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “กฎการตรวจสอบและข้อความแสดงข้อผิดพลาด”

ใช้กฎการตรวจสอบในตัว (required, minLength, pattern) และแสดงข้อความแสดงข้อผิดพลาด คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “กฎการตรวจสอบและข้อความแสดงข้อผิดพลาด” ใช้เวลานานแค่ไหน

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

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

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

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

  1. เริ่มต้นใช้งาน React Hook Form
  2. กฎการตรวจสอบและข้อความแสดงข้อผิดพลาด
  3. การตรวจสอบสคีมาด้วย Zod
  4. ช่องฟอร์มแบบไดนามิกด้วย useFieldArray
← กลับไปที่ React Academy