[英]IE 11 is not triggering “ng-change” (AngularJS)
大家好,我使用angularjs
,有工作datepicker
功能。 输入类型date在IE上不起作用,因此我正在使用jquery
和css
来获取日期选择器,它工作正常,但是我无法在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格式的日期?
您应该阅读以下讨论以更好地理解
下面我们谈论IE11:
我认为原因是jquery .datepicker方法不会将日期更改委派给您的ng-change方法。
如果您修改输入类型=“ text”,则ng-change也不会触发警报。 但是,如果您手动修改输入内容,则会触发警报消息。
也许您应该使用一些有角度的datepicker而不是jquery日期选择器来处理所有浏览器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.