IE 11没有触发“ng-change”(AngularJS)
大家好我正在使用angularjs
,使用angularjs
function。 输入类型日期不适用于IE所以我使用jquery
和css
来获取日期选择器,它工作正常,但我无法在IE中触发ng-change
事件,这里我附上了我的小提琴帮助。 帮我解决这个问题。
小提琴
Internet Explorer 11目前不支持因为您已经尝试查找解决方法。 您可以使用
datepicker onSelect
并更新您的模型。 您可以手动触发更改function。 这样您就可以从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); } }); }
{{date}}
它不工作的原因是IE11不知道输入=“日期”请查看截图!! https://iamlalit.tinytake.com/sf/MTgxNjMyN181OTAwMzE4
IE 11不支持 。 因此,您可以使用input
type='text'
或日期选择器 。
但无论如何,您需要validation该字段是否已从此讨论中输入无效日期
Javascript:如何以MM-DD-YYYY格式validation日期?
你应该阅读以下讨论以便更好地理解
如何在所有浏览器上支持? 任何替代品?
如何在Firefox和/或IE 10中使用HTML 5输入类型=“日期”
下面我们谈论IE11:
我认为原因是jquery .datepicker方法不会将日期更改委托给你的ng-change方法。
如果修改输入类型=“文本”,则ng-change也不会触发警报。 但是,如果手动修改输入内容,则会触发警报消息。
也许您应该使用一些角度datepicker而不是jquery日期选择器来处理所有浏览器。