h5在移动端使用type为date,且加上onchange方法时,ios手机日期控件不点确定,自己消失

使用的框架是angularjs
代码为

<input type="date" id="beginDate" name="beginDate" ng-model="beginDate"
              placeholder="yyyy-MM-dd" ng-change="dosth()" required />

以上代码在安卓手机上正常运行
但是在ios手机上时,我稍微划一下系统日期控件,我还没有点击确定,ios自己就把日期控件隐藏了,同时执行我的dosth方法,这个用户体验太差了,如果把ng-change="dosth()"这句去掉,又可以正常使用了,但是就不能执行切换事件了
请问有没有什么好的办法解决我的问题

阅读 2.5k
2 个回答

问题很简单,也是我经验不足,angularjs框架在移动端,它的date组件,ng-change执行时间在安卓和ios端不同,安卓是点击确定时执行ng-change事件,ios是你滑动一下组件即执行ng-change事件,故只需改成ios在blur状态执行事件即可。
具体方法是

<input type="date" id="beginDate" name="beginDate" ng-model="beginDate"
              placeholder="yyyy-MM-dd" ng-change="dosth()" ng-blur="dosth2()" required />

在dosth和dosth2方法里进行判断是安卓还是ios,然后执行对应的事件即可。
当然最好的方法,也是推荐的方法是封装成一个指令,这里就不说了,如果有需要可私聊我。

直接用onchange事件试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题