การทำงานกับปุ่มเรดิโอใน JavaScript
ตอนนี้ลองมาทำงานกับ ปุ่มเรดิโอ กันบ้าง
พวกมันเป็นกลุ่มของสวิตช์
ซึ่งสามารถเลือกได้เพียงอันเดียวเท่านั้น
เพื่อให้ปุ่มเรดิโอหลายปุ่มเป็นกลุ่มเดียวกัน
พวกมันต้องมีค่าแอตทริบิวต์
name ที่เหมือนกัน:
<input type="radio" name="elem">
<input type="radio" name="elem">
<input type="radio" name="elem">
และเพื่อให้ JavaScript สามารถแยกแยะได้ว่าปุ่มไหน ถูกเลือก แต่ละปุ่มเรดิโอใน กลุ่มจะถูกเพิ่มแอตทริบิวต์ value ด้วยค่า ที่แตกต่างกัน:
<input type="radio" name="elem" value="1">
<input type="radio" name="elem" value="2">
<input type="radio" name="elem" value="3">
เพื่อให้ปุ่มเรดิโอปุ่มใดปุ่มหนึ่งถูกเลือก
โดยค่าเริ่มต้น จำเป็นต้องกำหนดแอตทริบิวต์
checked ให้กับมัน:
<input type="radio" name="elem" value="1" checked>
<input type="radio" name="elem" value="2">
<input type="radio" name="elem" value="3">
ลองมาดูในทางปฏิบัติว่าทำงาน กับปุ่มเหล่านี้ใน JavaScript อย่างไร ให้ เรามีกลุ่มปุ่มเรดิโอที่แสดงด้านบน และปุ่มธรรมดาอีกปุ่มหนึ่ง:
<input type="submit" id="button">
ลองทำให้เมื่อคลิกที่
ปุ่มนั้น ค่าของ value
จากปุ่มเรดิโอที่ถูกเลือกอยู่ในขณะนั้น จะแสดงขึ้นบนหน้าจอ
สำหรับการแก้โจทย์จำเป็นต้องวนลูปผ่าน
ปุ่มเรดิโอทั้งหมดของเราและตรวจสอบว่าปุ่มไหน
ถูกเลือก ในการนี้จำเป็นต้องอ่าน
ค่าของคุณสมบัติ checked ของแต่ละ
ปุ่มเรดิโอที่วนลูป ปุ่มใดที่มีคุณสมบัตินี้
เท่ากับ true - ปุ่มเรดิโอนั้นก็คือปุ่มที่ถูกเลือก
มาทำตามที่อธิบายกัน:
let radios = document.querySelectorAll('input[type="radio"]');
let button = document.querySelector('#button');
button.addEventListener('click', function() {
for (let radio of radios) {
if (radio.checked) {
console.log(radio.value);
}
}
});
มีปุ่มเรดิโอ 3 ปุ่ม พารากราฟหนึ่งอัน และปุ่มหนึ่งปุ่ม
เมื่อคลิกที่ปุ่ม ให้แสดงค่า value
ของปุ่มเรดิโอที่ถูกเลือกในพารากราฟ