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