Bootstrap datepicker停止更改年份,按下打印键盘中的键盘屏幕键

时间:2017-10-23 11:16:34

标签: javascript angularjs datepicker

我在我的应用程序中使用Bootstrap的datepicker。当我按下键盘上的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键时,不应更改预期结果年份或月份。

0 个答案:

没有答案