jQuery 中的 select 元素 change 事件失效原因及解决方案
返回列表
由碧海醫心于2026-01-20 00:00:00编辑发布,已经有个小可爱看过这篇文章啦
当 select 下拉框仅含一个选项(且默认已选中)时,用户无法触发 change 事件——因为 dom 认为“值未发生改变”。必须确保至少有两个可选选项,并显式设置默认未选状态(如添加空值占位符),才能可靠捕获用户选择行为。
在 jQuery 中,change 事件仅在表单元素的值实际发生变化时触发。对于

✅ 正确示例(可触发 change):
⚠️ 注意事项:
- 不必使用 $(this).find(":selected").val() —— 对于 select 元素,$(this).val() 已直接返回当前选中 option 的 value 属性值,更高效且兼容性更好;
- 若需支持“首次加载即校验”,可在初始化后手动触发一次 .trigger('change'),但需确保 DOM 已就绪(建议包裹在 $(document).ready() 中);
- 避免将事件绑定代码写在
- 首次
- 可选
- html
- js
- go
- 多个
- 可在
- 设为
- 第一个
- 事件