ฉันกำลังมองหาโซลูชันทั่วไปสำหรับสิ่งนี้
พิจารณาอินพุตประเภทวิทยุ 2 อันที่มีชื่อเดียวกัน เมื่อส่งแล้วสิ่งที่ถูกตรวจสอบจะกำหนดค่าที่ส่งมาพร้อมกับแบบฟอร์ม:
<input type="radio" name="myRadios" onchange="handleChange1();" value="1" />
<input type="radio" name="myRadios" onchange="handleChange2();" value="2" />
เหตุการณ์การเปลี่ยนแปลงจะไม่ทำงานเมื่อยกเลิกการเลือกปุ่มตัวเลือก ดังนั้นหากวิทยุที่มีค่า = "1" ถูกเลือกอยู่แล้วและผู้ใช้เลือกรายการที่สอง handleChange1 () จะไม่ทำงาน นี่นำเสนอปัญหา (สำหรับฉันต่อไป) ในกรณีที่ไม่มีเหตุการณ์ที่ฉันสามารถตรวจจับสิ่งที่เลือกได้
สิ่งที่ฉันต้องการเป็นวิธีแก้ปัญหาสำหรับเหตุการณ์ onchange สำหรับค่ากลุ่มช่องทำเครื่องหมายหรืออีกวิธีหนึ่งคือเหตุการณ์ oncheck ที่ตรวจจับไม่เพียง แต่เมื่อมีการตรวจสอบวิทยุ แต่ยังเมื่อไม่ได้ตรวจสอบ
ฉันแน่ใจว่าคุณบางคนเคยพบปัญหานี้มาก่อน มีวิธีแก้ไขปัญหาอะไรบ้าง (หรือนึกคิดว่าวิธีที่เหมาะสมในการจัดการกับปัญหานี้คืออะไร) ฉันแค่ต้องการที่จะจับเหตุการณ์การเปลี่ยนแปลงเข้าถึงวิทยุที่ตรวจสอบก่อนหน้านี้เช่นเดียวกับวิทยุที่ตรวจสอบใหม่
PS
onclick ดูเหมือนจะเป็นเหตุการณ์ที่ดีกว่า (เบราว์เซอร์ข้าม) เพื่อระบุว่ามีการตรวจสอบวิทยุเมื่อใด แต่ก็ยังไม่สามารถแก้ปัญหาที่ไม่ได้ตรวจสอบได้
ฉันคิดว่ามันสมเหตุสมผลว่าทำไม onchange สำหรับประเภทช่องทำเครื่องหมายทำงานในกรณีเช่นนี้เนื่องจากมันเปลี่ยนค่าที่ส่งเมื่อคุณตรวจสอบหรือยกเลิกการตรวจสอบ ฉันหวังว่าปุ่มตัวเลือกจะทำงานเหมือนกับการเลือกองค์ประกอบของ SELECT แต่คุณจะทำอย่างไร ...
myRadios
เพื่ออ่านตัวแปรprev
ที่เก็บรายการวิทยุที่เลือกไว้ในปัจจุบัน การเปรียบเทียบจะดำเนินการภายในตัวจัดการการคลิกแต่ละตัวเพื่อตัดสินว่าวิทยุที่ได้รับการคลิกนั้นเป็นแบบเดียวกันกับที่จัดเก็บไว้ในprev
นั้นหรือไม่ ภายในตัวจัดการคลิกคุณสามารถเข้าถึงรายการที่เลือกไว้ก่อนหน้านี้prev
และรายการวิทยุที่เลือกในปัจจุบัน:this