คอมโพเนนต์ทั้งหมด

Field

ป้ายกำกับ คำแนะนำ และข้อผิดพลาด ผูก ARIA ให้ครบ

ui/field.tsxServer safe

โครงสร้าง

ป้ายกำกับอยู่บน ช่องกรอกตรงกลาง คำแนะนำและข้อผิดพลาดอยู่ใต้ช่อง Field ผูก id, aria-describedby และ aria-invalid ให้เอง

ใช้สำหรับเข้าสู่ระบบและรับใบเสร็จ

tsx
<Field label="อีเมล" hint="ใช้สำหรับเข้าสู่ระบบและรับใบเสร็จ" required>
  <Input type="email" autoComplete="email" />
</Field>

ข้อผิดพลาด

บอกว่าผิดอะไรและแก้อย่างไร แสดงหลังผู้ใช้ออกจากช่องหรือกดส่ง ไม่ใช่ระหว่างพิมพ์

ใส่เบอร์ 10 หลัก เช่น 0812345678

tsx
<Field label="เบอร์โทรศัพท์" error="ใส่เบอร์ 10 หลัก เช่น 0812345678">
  <Input type="tel" defaultValue="08123" />
</Field>

ไม่บังคับ

ถ้าฟอร์มส่วนใหญ่บังคับ ให้ติดป้ายเฉพาะช่องที่ไม่บังคับ
tsx
<Field label="ชื่อโรงเรียน" optional>
  <Input />
</Field>

Props

PropTypeDefaultคำอธิบาย
labelReactNode-ป้ายกำกับที่มองเห็น บังคับ
hintReactNode-คำแนะนำใต้ช่อง ผูกด้วย aria-describedby
errorReactNode-ข้อความผิดพลาด ตั้ง aria-invalid ให้ช่องกรอก
requiredbooleanfalseเครื่องหมาย * และ required บนช่องกรอก
optionalbooleanfalseป้าย (ไม่บังคับ)
asideReactNode-ด้านขวาของแถวป้าย เช่น ตัวนับหรือลิงก์ลืมรหัสผ่าน
childrenReactElement-ช่องกรอกหนึ่งตัว

การเข้าถึง

  • ป้ายกำกับเป็น <label for> จริง กดที่ป้ายแล้วโฟกัสช่องได้
  • คำแนะนำและข้อผิดพลาดถูกอ่านต่อจากป้ายเมื่อโฟกัสช่อง
  • ข้อผิดพลาดมีไอคอนและข้อความ ไม่ได้บอกด้วยสีอย่างเดียว

ใช้เมื่อไร

ควรทำ

  • ป้ายสั้นเป็นคำนาม เช่น อีเมล
  • บอกรูปแบบที่ต้องการในคำแนะนำ ก่อนผู้ใช้ทำผิด
  • จัดช่องเป็นคอลัมน์เดียว

ไม่ควรทำ

  • ใช้ placeholder แทนป้าย
  • แสดงข้อผิดพลาดตั้งแต่ยังไม่พิมพ์
  • เขียนข้อผิดพลาดว่า ข้อมูลไม่ถูกต้อง โดยไม่บอกวิธีแก้