2017-07-27 88 views
1

大家好我正在使用angularjs,使用datepicker功能。输入类型的日期不工作在IE浏览器,所以我使用jquerycss获取日期选择器,它工作正常,但我不能触发IE中的ng-change事件,在这里我附上了我的小提琴帮助。帮我解决这个问题。IE 11不会触发“ng-change”(AngularJS)

Fiddle

+1

Internet Explorer 11当前不支持''。你可以使用ng-datepicker。 –

+0

@ Ahmet CanGüven我知道所以只有我申请日期不支持的浏览器我申请jquery让另一个选择器好心地检查我的小提琴在IE – jose

+0

可能重复[如何使所有浏览器支持?任何替代品?](https://stackoverflow.com/questions/18020950/how-to-make-input-type-date-supported-on-all-browsers-any-alternatives) –

回答

2

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>

+0

小提琴没有开放在IE – jose

+0

@ jose添加小提琴链接 –

+0

我不能触发ng-change事件现在仍然或我需要该文本框脏形式真 – jose

0

下面我们正在谈论IE11:

我想原因是jQuery的.datepicker方法不会委托日期更改到NG-变化的方法。

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

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