ความแตกต่างที่สำคัญที่สุดระหว่างสองเหตุการณ์นี้คือสิ่งที่ทำให้เกิดการvalue
เปลี่ยนแปลงใน<input>
.
ตามMDN :
input
เหตุการณ์ fires เมื่อvalue
ของ<input>
, <select>
หรือ<textarea>
องค์ประกอบที่มีการเปลี่ยนแปลง
AKA,
input
เริ่มทำงานทุกครั้งที่มีvalue
การเปลี่ยนแปลง
change
ซับซ้อนกว่าเล็กน้อย:
change
เหตุการณ์ถูกยิง<input>
, <select>
และ<textarea>
องค์ประกอบเมื่อมีการเปลี่ยนแปลงองค์ประกอบของvalue
ความมุ่งมั่นโดยผู้ใช้ ซึ่งแตกต่างจากinput
เหตุการณ์ที่เหตุการณ์ไม่ได้ยิงจำเป็นสำหรับแต่ละการเปลี่ยนแปลงไปขององค์ประกอบchange
value
กล่าวอีกนัยหนึ่ง
change
เริ่มทำงานเมื่อผู้ใช้เปลี่ยนไฟล์value
.
เมื่อว่ามันยิงขึ้นอยู่กับtype
ของ<input>
:
สำหรับ...
- "วิทยุ" และ "ช่องทำเครื่องหมาย":
- เมื่อองค์ประกอบคือ
:checked
โดยแป้นพิมพ์หรือคลิกเมาส์
- "วันที่" และ "ไฟล์":
- เมื่อมีการเปลี่ยนแปลงอย่างชัดเจนเช่น เลือกวันที่หรือไฟล์
- "text":
- เมื่อองค์ประกอบสูญเสียโฟกัสหลังจากเปลี่ยนค่าแล้ว แต่ไม่มีข้อผูกมัด
คำเตือนที่เป็นธรรมว่าเบราว์เซอร์ไม่แน่นอนและไม่เห็นด้วยกับเหตุการณ์เสมอไป อย่างไรก็ตามนี่เป็นข้อมูลจำเพาะและคุณควรจะสามารถนับเวลาเหล่านี้ได้