0

有一个类似于“全选”的问题不适用于 twitter bootrap modal 和 IE,由 merv 回答。(非常感谢merv)

问题的小提琴:http: //jsfiddle.net/lesouthern/5ked9/ 在 datepicker 的简单调用中:

$('input').datepicker();

在使用日期选择器之前,Ctrl-A 有效。

使用 IE 禁用 Ctrl-A 和 Select all 后(使用 IE8 确认)。

我是否像模态一样关闭日期选择器的事件?尝试了许多组合但没有运气。

谢谢

4

1 回答 1

0

这可能不是一个解决方案,更像是一个 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();
                }
            });
        }
    }
})
于 2013-04-03T00:30:02.730 回答