คลาสจำลอง :user-valid และ :user-invalid

:user-valid

การรองรับเบราว์เซอร์

  • Chrome: 119
  • Edge: 119
  • Firefox: 88
  • Safari: 16.5

แหล่งที่มา

:user-invalid

การรองรับเบราว์เซอร์

  • Chrome: 119
  • Edge: 119
  • Firefox: 88
  • Safari: 16.5

แหล่งที่มา

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

ตัวเลือกคลาสเทียมสำหรับการโต้ตอบของผู้ใช้

ตัวเลือกคลาสจำลอง :user-valid และ :user-invalid คล้ายกับคลาสจำลอง :valid และ :invalid ที่มีอยู่ ทั้งคู่ตรงกับการควบคุมแบบฟอร์มตาม ว่าค่าปัจจุบันเป็นไปตามข้อจำกัดการตรวจสอบหรือไม่ อย่างไรก็ตาม ข้อดีของคลาสเทียม :user-valid และ :user-invalid ใหม่คือ ตรงกับการควบคุมแบบฟอร์มเฉพาะเมื่อผู้ใช้มีการโต้ตอบที่สำคัญแล้วเท่านั้น อินพุต

การควบคุมแบบฟอร์มที่ต้องกรอกและว่างเปล่าจะตรงกับ :invalid แม้ว่าผู้ใช้จะยังไม่ได้เริ่มโต้ตอบกับหน้าเว็บก็ตาม แต่การควบคุมแบบฟอร์มเดียวกันนั้นจะไม่ ตรงกับ :user-invalid จนกว่าผู้ใช้จะเปลี่ยนข้อมูลที่ป้อนและเก็บไว้ใน สถานะไม่ถูกต้อง

ใช้คลาสเทียม :user-valid และ :user-invalid

ใช้คลาสเทียมเหล่านี้เพื่อจัดรูปแบบการควบคุมอินพุต เลือก และพื้นที่ข้อความ ตามที่แสดง ในตัวอย่างต่อไปนี้

input:user-valid,
select:user-valid,
textarea:user-valid {
  border-color: green;
}

input:user-invalid,
select:user-invalid,
textarea:user-invalid {
  border-color: red;
}
<input required="required" />

<select required="required">
  <option value="">Choose an option</option>
  <option value="1">One</option>
</select>

<textarea required="required"></textarea>

รูปภาพที่รวมภาพหน้าจอ 3 ภาพเคียงข้างกันเพื่อเปรียบเทียบ ภาพหน้าจอแต่ละภาพแสดงแบบฟอร์มเว็บที่มีตัวควบคุมอินพุต เลือก และ textarea เดียวกัน ภาพหน้าจอแรกแสดงแบบฟอร์มในสถานะเริ่มต้นก่อนผู้ใช้ป้อนข้อมูล เส้นขอบของการควบคุมจะเป็นสีเทาและข้อความความช่วยเหลือด้านล่างจะอธิบายว่าขณะนี้การควบคุมแต่ละรายการจะจับคู่กับตัวเลือกคลาสจำลองที่ไม่ถูกต้อง :invalid ภาพหน้าจอที่ 2 แสดงแบบฟอร์มเดียวกันหลังจากที่ผู้ใช้ป้อนข้อมูลสำหรับการควบคุมแต่ละรายการ เส้นขอบของตัวควบคุมเป็นสีเขียวและข้อความความช่วยเหลือด้านล่างอธิบายว่าขณะนี้ตัวควบคุมแต่ละรายการจะจับคู่กับทั้งตัวเลือกคลาสจำลอง :valid และ :user-valid ภาพหน้าจอที่ 3 ซึ่งเป็นภาพหน้าจอสุดท้ายจะแสดงแบบฟอร์มเดียวกันหลังจากที่ผู้ใช้นำข้อมูลทั้งหมดของตนเองออกแล้ว เส้นขอบการควบคุมเป็นสีแดงและข้อความช่วยเหลือด้านล่างอธิบายว่าปัจจุบันการควบคุมแต่ละรายการจะตรงกับตัวเลือกคลาสสมมติทั้ง :ไม่ถูกต้อง และ :ผู้ใช้ไม่ถูกต้อง

ตัวเลือกจะจับคู่ตามการโต้ตอบของผู้ใช้และข้อจำกัดการตรวจสอบ โต้ตอบกับการสาธิตต่อไปนี้เพื่อดูการทำงานจริง:

ประสบการณ์ของผู้ใช้ที่ดีขึ้นด้วยโค้ดที่น้อยลง

หากไม่มีคลาสจำลองเหล่านี้ ผู้ใช้จะไม่ได้รับประสบการณ์การใช้งานที่ :user-valid และ :user-invalid มอบให้ และต้องเขียนโค้ดที่มีสถานะเพิ่มเติม นั่น ในการติดตามมูลค่าเริ่มต้น สถานะการโฟกัสปัจจุบัน ขอบเขตที่ผู้ใช้เปลี่ยนแปลงค่า เรียกใช้ความถูกต้องเพิ่มเติม และสุดท้ายก็เพิ่มคลาสเพื่อเลือกการจัดรูปแบบ ตอนนี้คุณสามารถใช้ จัดการสิ่งต่างๆ ทั้งหมดนี้ได้โดยอัตโนมัติ

แหล่งข้อมูลเพิ่มเติม

รูปภาพปกโดย Behzad Ghaffarian จาก Unsplash