Javascript 在angularjs中按键盘的打印屏幕键时,引导日期选择器停止更改年份

Javascript 在angularjs中按键盘的打印屏幕键时,引导日期选择器停止更改年份,javascript,angularjs,datepicker,Javascript,Angularjs,Datepicker,我正在应用程序中使用Bootstrap的日期选择器。当我按下键盘上的PrtScrn键时,它会改变数据采集器中的年份 我怎样才能阻止这种行为发生 这是我的指令码 .directive('datepicker', function(){ return { require: '?ngModel', restrict: 'A', link: function(scope, element, attrs, ngMod

我正在应用程序中使用Bootstrap的日期选择器。当我按下键盘上的PrtScrn键时,它会改变数据采集器中的年份

我怎样才能阻止这种行为发生

这是我的指令码

 .directive('datepicker', function(){
        return {
            require: '?ngModel',
            restrict: 'A',
            link: function(scope, element, attrs, ngModel,$filter){
                 var dates = scope.$eval(attrs.datepicker);               
                if(dates[0].toDate !== null)
                {
                  var date =new Date(dates[0].toDate) ;
                  var toDate=(date.getDate()) + '/' + (date.getMonth() + 1)+ '/' +  date.getFullYear();
                  var date1 =new Date(dates[0].fromDate) ;
                  var fromDate=(date1.getDate()) + '/' + (date1.getMonth() + 1) + '/' +  date1.getFullYear();
                }                
                if(!ngModel) return; // do nothing if no ng-model

                ngModel.$render = function(){

                    element.val( ngModel.$viewValue || '' );
                }

                element.datepicker({
                    format    : 'dd/mm/yyyy',
                    autoclose : true,
                    //startDate : toDate,
                    endDate   : toDate
                });            

                function read() {
                    var value = element.val();
                  //  ngModel.$setViewValue(value);
                }  
            }
        }
    });
这是html代码

     <input 
    dynamic-name="field.name"
    datepicker="[{toDate:field.todate,fromDate :field.fromdate}]"                                                      readonly="field.isreadonly"
    type="text"
    placeholder ="{{field.placeholder}}"
    class="form-control"
    dynamic-validation = "field.validationtype"
    ng-model= "formVariables[field.name]"
    value="{{field.value}}"
    ng-required = "{{field.expression}}"
 />

复制步骤:

  • 点击月份或年份
  • 然后单击年份的向右或向左箭头
  • 按键盘上的PrtScrn键,观察输出年份和月份的变化

按PrtScrn键时,不应更改预期结果年份或月份

我也使用了
Bootstrap的日期选择器
,但在我的项目中,没有出现您的问题。。嗯。。真奇怪。。你能发布你的控制器代码或html吗?或者您的项目中是否有一些使用关键事件的代码?谢谢Canet Robern,我已经用controller和html代码更新了我的问题。请检查并让我知道。您可以分享您正在使用的模块吗?我已经尝试了您的代码,但我找不到任何错误。。您是否编辑或修改过js文件?或者您的本地代码中是否有任何密钥事件?我的代码中没有任何密钥事件。我已经检查了你的电脑,但同样的问题也发生了。我正在使用MAC或windows操作系统。按照步骤检查此问题。1> 点击月份或年份。2> 然后单击年份的向右或向左箭头。3> 按键盘上的PrtScrn键,观察输出年份和月份的变化。按PrtScrn键时,预期结果年或月不应更改。我也使用了
引导的日期选择器
,但在我的项目中,您的问题没有发生。。嗯。。真奇怪。。你能发布控制器代码还是html代码?或者您的项目中是否有一些使用关键事件的代码?谢谢Canet Robern,我已经用controller和html代码更新了我的问题。请检查并让我知道。您可以分享您正在使用的模块吗?我已经尝试了您的代码,但我找不到任何错误。。您是否编辑或修改过js文件?或者您的本地代码中是否有任何密钥事件?我的代码中没有任何密钥事件。我已经检查了你的电脑,但同样的问题也发生了。我正在使用MAC或windows操作系统。按照步骤检查此问题。1> 点击月份或年份。2> 然后单击年份的向右或向左箭头。3> 按键盘上的PrtScrn键,观察输出年份和月份的变化。按PrtScrn键时,不应更改预期结果年份或月份。