การทำงานกับ radio ใน React
การทำงานกับ radio
radio นั้นค่อนข้างแตกต่างออกไป เช่น
เมื่อเทียบกับ checkbox ปัญหาอยู่ที่ว่า
radio หลายๆ ปุ่มจะมี state เดียวกัน
แต่มี value ที่ต่างกัน
ดังนั้นวิธีการทำงานจึงเป็นดังนี้:
ให้กำหนดค่าเฉพาะของแต่ละปุ่ม radio ในแอตทริบิวต์ value
และกำหนดเงื่อนไขพิเศษในแอตทริบิวต์ checked
ซึ่งจะตรวจสอบว่า
state นั้นเท่ากับค่าที่กำหนดหรือไม่ ถ้า
เท่ากัน - ปุ่ม radio นั้นจะถูกเลือก (checked)
แต่ถ้าไม่เท่ากัน - จะไม่ถูกเลือก
นี่คือการนำวิธีที่อธิบายไว้ไปปฏิบัติ:
function App() {
const [value, setValue] = useState(1);
function changeHandler(event) {
setValue(event.target.value);
}
return <div>
<input
type="radio"
name="radio"
value="1"
checked={value === '1' ? true : false}
onChange={changeHandler}
/>
<input
type="radio"
name="radio"
value="2"
checked={value === '2' ? true : false}
onChange={changeHandler}
/>
<input
type="radio"
name="radio"
value="3"
checked={value === '3' ? true : false}
onChange={changeHandler}
/>
</div>
}
มีปุ่ม radio อยู่ 3 ปุ่ม มีพารากราฟหนึ่ง จงทำให้
ค่าของปุ่ม radio ที่ถูกเลือก
แสดงออกมาในพารากราฟนี้
ใช้ปุ่ม radio ถามผู้ใช้เกี่ยวกับ ภาษาโปรแกรมมิ่งที่เขาชื่นชอบ แสดง ผลลัพธ์ที่ผู้ใช้เลือกในพารากราฟ ถ้าผู้ใช้เลือกภาษา JavaScript ให้ชมผู้ใช้นั้น