2016-11-15 13 views
0

角度ブートストラップUIのTimePickerを使用していて、50を時間フィールドに入力すると、フィールドが赤くなりますが、そのTue Nov 15 2016 05:00:55 GMT+0100角度ブートストラップUIタイムピッカーが無効な時間を入力

私は何ができますか?ありがとう!あなたは時間と分の入力値を制限するために検討することもでき、そのことについては

答えて

1

は、ここにTimepicker

1のためにそれをカスタマイズする方法である)カスタムテンプレートを導入し、hourためminmaxvalidate-value属性を指定例えば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

関連する問題