2016-11-15 3 views
0

Я использую Угловой Bootstrap UI Timepicker входит 50 в поле часов, он выдвигает на первый план поля красного, но тем не менее я получаю правильную дату из него, который выглядит так же, как это Tue Nov 15 2016 05:00:55 GMT+0100.Угловой Bootstrap UI Timepicker ввод некорректного времени

Любые идеи, что я могу сделать? Благодаря!

ответ

1

В этом отношении вы могли бы рассмотреть возможность ограничить значения часа и минуты ввода, вот как настроить его для Timepicker

1) ввести пользовательские шаблон и указать атрибуты в min, max и validate-value для hour и minute элементы ввода, например:

<input type="text" placeholder="HH" validate-value min="1" max="12" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementHours()" ng-blur="blur()"> 

2) реализуют validate-value директиву, чтобы ограничить числовые значения в элементе ввода:

.directive('validateValue', function() { 
    return { 
     require: 'ngModel', 
     link: function(scope, element, attrs, ngModelCtrl) { 

      ngModelCtrl.$parsers.unshift(function(viewValue) { 
       var min = Number(eval(attrs.min)); 
       var max = Number(eval(attrs.max)); 
       var value = Number(viewValue); 
       var valid = (!isNaN(value) && value >= min && value <= max); 

       if (!valid) { 
        var currentValue = ngModelCtrl.$modelValue.toString(); 
        ngModelCtrl.$setViewValue(currentValue); 
        ngModelCtrl.$render(); 
        return currentValue; 
       } 
       else { 
        return viewValue; 
       } 

      }); 
     } 
    }; 
}) 

Demo

+0

Спасибо, но не там нет «родного» способа сделать это с простой конфигурацией начальной загрузки? То, что вы объясните здесь, вероятно, будет работать. Я проведу его в ближайшее время. – molerat

+0

В соответствии с [страницами настроек] (https://angular-ui.github.io/bootstrap/) 'max' и' min' могут быть указаны для установки максимального и минимального времени, которое пользователь может выбрать, но, к сожалению, эти настройки не будут препятствовать пользователь вводит недопустимые значения. –

+0

Так что я не пробовал. Я просто console.logged неправильный объект времени. Результат, который поступает прямо из timepicker, кажется нулевым, когда он недействителен. Похоже, я использовал другой объект времени, который был изменен ранее. Спасибо в любом случае и жаль усилий. – molerat