2017-07-27 119 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日期選擇器來處理所有的瀏覽器。