大家好我正在使用angularjs
,使用datepicker
功能。输入类型的日期不工作在IE浏览器,所以我使用jquery
和css
获取日期选择器,它工作正常,但我不能触发IE中的ng-change
事件,在这里我附上了我的小提琴帮助。帮我解决这个问题。IE 11不会触发“ng-change”(AngularJS)
回答
Internet Explorer 11当前不支持<input type='date'>
,因为您已经试图找到解决办法。您可以使用datepicker onSelect
并更新您的模型。您可以手动触发更改功能。这样您就可以收集HTML5 Date支持的浏览器和其他浏览器的更改。
您可以找到小提琴here
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">
\t <input type="date" id="test" ng-model="date" ng-change="changeDetected()"/>
{{date}}
</div>
它之所以不工作是IE11不知道为type =“日期” 请看看到屏幕截图! https://iamlalit.tinytake.com/sf/MTgxNjMyN181OTAwMzE4
在我的小提琴我应用CSS来获取选择器任何方式来解决该pblm – jose
IE 11不支持<input type='date'>
。所以你可以使用输入type='text'
或date picker。
但无论如何,你需要验证,如果字段已经从这次讨论
Javascript: how to validate dates in format MM-DD-YYYY?
输入无效的日期,你应该阅读这些下面的讨论,以更好地了解
How to make <input type="date"> supported on all browsers? Any alternatives?
How to get HTML 5 input type="date" working in Firefox and/or IE 10
下面我们正在谈论IE11:
我想原因是jQuery的.datepicker方法不会委托日期更改到NG-变化的方法。
如果修改输入类型=“text”,则ng-change也不会触发警报。 但是,如果您手动修改输入内容,则会触发警报消息。
也许你应该使用一些角度datepicker而不是jQuery日期选择器来处理所有的浏览器。
- 1. AngularJS - 触发ngChange?
- 2. AngularJS ngChange触发器onblur
- 3. IE的onclick不会触发
- 4. IE不会触发输入
- 5. AngularJs:$ watch不会触发
- 6. 从自定义指令触发ngChange
- 7. 在ngModel更改时未触发ngChange
- 8. x-tags不会触发IE上的WebComponentsReady
- 9. IE不会触发输入和标签
- 10. jquery tipsy不会触发onclick IE
- 11. Javascript onmouseover不会在IE中触发
- 12. IE onpropertychange事件不会触发
- 13. 硒IE更改事件不会触发
- 14. AngularJS,选择onChange或ngChange
- 15. Angularjs costum过滤器不会触发
- 16. Ionic/AngularJS ng-click事件不会触发?
- 17. AngularJS-ng-checked不会触发ng-change
- 18. Angularjs ng-click不会触发指令
- 19. 触发器看localStorage的变化不会在angularjs中触发
- 20. IE 11的onload不会被调用
- 21. Pointermove在IE上不触发触摸
- 22. ng-click不触发Angularjs
- 23. OnChange事件没有针对ReactJS组件的IE 11触发
- 24. IE 11未在SVG地图上触发Mouseenter或Mouseleave事件
- 25. OnSelectedIndexChanged在生产中未触发 - 仅限IE 11
- 26. 为什么有不同版本的IE则不会触发
- 27. ng-repeat内的AngularJS验证不会触发
- 28. AngularJS - ng-click不会触发我的控制器功能
- 29. AngularJS何时会触发脏检?
- 30. OnEnterBreakMode不会触发
Internet Explorer 11当前不支持''。你可以使用ng-datepicker。 –
@ Ahmet CanGüven我知道所以只有我申请日期不支持的浏览器我申请jquery让另一个选择器好心地检查我的小提琴在IE – jose
可能重复[如何使所有浏览器支持?任何替代品?](https://stackoverflow.com/questions/18020950/how-to-make-input-type-date-supported-on-all-browsers-any-alternatives) –