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