You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ion-datetime开启multiple=true时ionChange仅触发一次的问题咨询

Ion-Datetime开启multiple属性后,年月滚轮ionChange事件仅首次触发的问题

问题复现代码

HTML

<ion-datetime clearInput="true" presentation="date" preferWheel="false" max="2100" 
formControlName="example" minuteValues="0,10,20,30,40,50" slot="content" 
 [multiple]="true"  (ionChange)="dateTimeUpdated($event)">
</ion-datetime>

TypeScript

dateTimeUpdated($event){
  console.log($event);
}

问题现象

开启multiple="true"后,修改年月滚轮的值时,ionChange事件仅第一次触发,后续滚动或点击年月滚轮都不再响应;但**日期(day)**部分每次点击都会正常触发ionChange事件。移除multiple属性后,所有滚轮的修改操作都能正常触发事件。

相关情况说明

这个问题确实有不少开发者反馈过,属于ion-datetime多选模式下的已知行为(或潜在bug)。

核心原因是多选模式的事件触发逻辑针对日期选择做了特殊处理:当切换年月时,组件仅在首次切换后触发一次ionChange,后续年月切换因为没有选中新的日期(day)项,不会被判定为“完成有效选择”,因此不会触发事件;而日期点击每次都是明确选中了新的日期选项,所以会持续触发ionChange。

可选解决方案

如果需要保留多选功能同时监听年月变化,可以尝试以下两种思路:

  • 结合表单控件的valueChanges订阅,配合组件的ionFocus/ionBlur事件,捕获年月的修改;
  • 通过ViewChild获取ion-datetime实例,手动监听内部滚轮的变化事件(注意不同Ionic版本的组件结构可能有差异,需要对应调整监听逻辑)。

内容的提问来源于stack exchange,提问作者AkiZukiLenn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:57:23