这可能不是一个解决方案,更像是一个 hack.. 但是,嘿,我正在使用 IE8..
这是我编写的解决问题的 angularjs 指令。
我的日期选择器在模态对话框中,在他们看来,日期选择器被初始化,当它们关闭时,日期选择器被销毁,它创建的 div 被删除。这是我能够在这种环境中恢复 ctrl-a 的唯一方法。
在 datepicker 初始化之前和销毁之后,Ctrl-A 在 IE8 中工作。这对我来说已经足够了。
<input class="span2 paused-until"
datepicker-wrapper="{
maxDate : getMaxDate()
}"
ng-change="error=false"
ng-model="pausedUntil"
name="Paused Until"
size="16"
type="text"
ui-validate='{validFutureDate : validateDate}'
ng-pattern="/^(\d{1,2})-(\d{1,2})-(\d{4})$/"
required />
.directive('datepickerWrapper',function() {
return {
restrict : 'A',
link : function($scope,$element,$attrs) {
$scope.$watch('modal.model',function(m) {
var _attrs = $scope.$eval($attrs.datepickerWrapper);
var maxDate = (typeof _attrs === 'undefined' ||
typeof _attrs.maxDate === 'undefined') ?
null : _attrs.maxDate;
//if the dialog is open, create the datepicker
if(m) {
$element.datepicker({
minDate : '+1d',
dateFormat : 'mm-dd-yy',
showOn : 'button',
buttonText : '<i class="icon-calendar"></i>',
maxDate : maxDate,
onSelect : function(dateText) {
//assign the selection of the
//text to the element's model
$scope[$attrs.ngModel] = dateText;
$scope.$apply();
}
});
}
//else completely remove this element and generated div
else {
$element.datepicker('destroy');
$('#ui-datepicker-div').remove();
}
});
}
}
})