使用JQuery从Dom中删除指令

时间:2016-11-01 20:07:38

标签: javascript jquery angularjs

在Internet Explorer中,输入type =“date”不起作用,而angular指令则用于显示jqueryUI datetimepicker。

但是,在chrome中,两者都在显示,有没有办法使用jquery从元素中删除指令,这样当它允许输入类型日期时,才会采用唯一的html5日期时间?

HTML:

<input id="date1" type="date" ng-model="date" jqdatepicker/>
<br/>
{{ date }}

javascript:

var datePicker = angular.module('app', []);

datePicker.directive('jqdatepicker', function () {
    return {
        restrict: 'A',
        require: 'ngModel',
         link: function (scope, element, attrs, ngModelCtrl) {
            element.datepicker({
                dateFormat: 'mm/dd/yy',
                onSelect: function (date) {
                    scope.date = date;
                    scope.$apply();
                }
            });
        }
    };
});

$(document).ready(function(){

$('#date1').removeAttr('jqdatepicker');
if ($('#date1')[0].type != 'date') {

}
});

http://jsfiddle.net/TAeNF/1420/

1 个答案:

答案 0 :(得分:0)

我通过从指令

有条件地返回来解决这个问题

http://jsfiddle.net/TAeNF/1421/

if ($('#date1')[0].type != 'date') {
    return {
        restrict: 'A',
        require: 'ngModel',
         link: function (scope, element, attrs, ngModelCtrl) {
            element.datepicker({
                dateFormat: 'mm/dd/yy',
                onSelect: function (date) {
                    scope.date = date;
                    scope.$apply();
                }
            });
        }
    };
    }
    else
    return null;
});
相关问题