IE 11没有触发" ng-change" (AngularJS)

时间:2017-07-27 06:07:29

标签: javascript jquery angularjs datepicker

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

Fiddle

4 个答案:

答案 0 :(得分:3)

Internet Explorer 11目前不支持datepicker onSelect,因为您已尝试查找解决方法。您可以使用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); } }); }并更新您的模型。您可以手动触发更改功能。这样您就可以从HTML5 Date支持的浏览器和其他浏览器中收集这些更改。

你可以找到小提琴here



<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>
&#13;
    $dbhost = 'localhost';
    $dbuser = 'USERNAME';
    $dbpass = 'PASSWORD';
    $dbname = 'DATABASETABLE';
&#13;
&#13;
&#13;

答案 1 :(得分:0)

无法正常工作的原因是IE11不知道输入=“date” 请看一下截图!! https://iamlalit.tinytake.com/sf/MTgxNjMyN181OTAwMzE4

答案 2 :(得分:0)

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

答案 3 :(得分:0)

下面我们谈论的是IE11:

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

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

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