繁体   English   中英

IE 11未触发“ ng-change”(AngularJS)

[英]IE 11 is not triggering “ng-change” (AngularJS)

大家好,我使用angularjs ,有工作datepicker功能。 输入类型date在IE上不起作用,因此我正在使用jquerycss来获取日期选择器,它工作正常,但是我无法在IE中触发ng-change事件,在这里我附上了我的小提琴帮助。 帮我解决这个问题。

小提琴

Internet Explorer 11当前不支持<input type='date'>因为您已经在寻找解决方法。 您可以使用datepicker onSelect并更新模型。 您可以手动触发更改功能。 这样您就可以从支持HTML5 Date的浏览器和其他浏览器中收集更改。

你可以在这里找到小提琴

 function LoginController($scope) { $scope.changeDetected = function() { console.log($scope.date); } if ($('#test')[0].type != 'date') $('#test') .datepicker({ onSelect: function(date) { $scope.date = date; $scope.$apply(); $scope.changeDetected(date); } }); } 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div ng-app ng-controller="LoginController"> <input type="date" id="test" ng-model="date" ng-change="changeDetected()"/> {{date}} </div> 

它不起作用的原因是IE11不知道键入=“ date”,请看截图!! https://iamlalit.tinytake.com/sf/MTgxNjMyN181OTAwMzE4

IE 11不支持<input type='date'> 因此,您可以使用input type='text'日期选择器

但是无论如何,您都需要验证此讨论中输入的字段是否为无效日期

Javascript:如何验证MM-DD-YYYY格式的日期?


您应该阅读以下讨论以更好地理解

如何使所有浏览器都支持<input type =“ date”>? 有其他选择吗?

如何在Firefox和/或IE 10中使用HTML 5输入type =“ date”

下面我们谈论IE11:

我认为原因是jquery .datepicker方法不会将日期更改委派给您的ng-change方法。

如果您修改输入类型=“ text”,则ng-change也不会触发警报。 但是,如果您手动修改输入内容,则会触发警报消息。

也许您应该使用一些有角度的datepicker而不是jquery日期选择器来处理所有浏览器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM