2017-07-10 6 views
2

ユーザーが不正なデータを入力するのを防ぎ、ユーザーの入力をぼやけにする入力ボックスを作りたいと思います。AngularJSのカスタム数字/時間入力はどうすればできますか?

入力型= numberには、私が望ましくない機能がいくつかあるため、カスタムディレクティブを使用したいと思います。

<input type="text" ng-model="time" /> 

ユーザーが不適切なエントリを入力すると、そのエントリが表示されてモデルに入るのを防ぐ必要があります。例えば1aでは「a」は表示されない。 彼らは99を入力した場合:彼らは「C」 または55:10は表示されませんC:彼らは、第二は表示されません「:」

私はこれらが有効なエントリになりたい:時間の

x個:y分の数

  • 99:32 - 99時間と32分
  • 99時間
  • 0時02 - ここでは2分

は、私がこれまで持っているものです。 https://plnkr.co/edit/Nkjr5ahjBj4OQ3q2fMhL?p=preview

+1

使用 'NG-pattern' – charlietfl

+0

は、私はそれを試してみましたが、それは私のために動作しませんでした。 – user1261710

答えて

0

AngularJS Element指令入力[time]は、時間の検証と変換を伴うHTML時間入力の作成に使用されます。

入力、すなわちローカル時刻形式HHは、フォーマットISO-8601に提供されなければならない:mm:ssは、例えば、15時35分10秒

データモデルは、日付オブジェクトである必要があり、タイムゾーンが使用さ読み込み/書き込みDateインスタンスはngModelを使用して定義されます。

構文:

<input type="time" 
     ng-model="string" 
     [name="string"] 
     [min="string"] 
     [max="string"] 
     [required="string"] 
     [ng-required="string"] 
     [ng-change="string"]> 

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<!doctype html> 
 
<html lang="en"> 
 
<head> 
 
    <title>AngularJS Directives : input[time]</title> 
 
    <script src="angular.js"></script> 
 
    <style> 
 
     b{font-family:Papyrus; color:#fa4b2a; font-size: 20px;} 
 
    </style> 
 
</head> 
 
<body ng-app="timeDemo"> 
 
    <script> 
 
angular.module('timeDemo', []) 
 
    .controller('timeController', ['$scope', function($scope) { 
 
    $scope.sample = { 
 
     value: new Date(1999, 0, 1, 15, 30, 0) 
 
    }; 
 
    }]); 
 
</script> 
 
<form name="demoForm" ng-controller="timeController as timeCtrl"> 
 
    <label for="sampleInput">Select a time from 6 am to 6 pm</label> 
 
    <input type="time" id="sampleInput" name="input" ng-model="sample.value" 
 
     placeholder="HH:mm:ss" min="06:00:00" max="18:00:00" required /> 
 
    <!-- min 6 am and max 6 pm i.e 18:00 --> 
 
    <div role="alert"> 
 
    <span class="error" ng-show="demoForm.input.$error.required"> 
 
     Input is Required!</span> 
 
    <!-- Required Error --> 
 
    <span class="error" ng-show="demoForm.input.$error.time"> 
 
     Input Date is not Valid!</span> 
 
    <!-- Validation Error --> 
 
     
 
    </div> 
 
    <i>value = <b>{{sample.value | date: "HH:mm:ss"}}</b></i><br/> 
 
    <i>demoForm.input.$valid = <b>{{demoForm.input.$valid}}</b></i><br/> 
 
    <i>demoForm.input.$error = <b>{{demoForm.input.$error}}</b></i><br/> 
 
    <i>demoForm.$valid = <b>{{demoForm.$valid}}</b></i><br/> 
 
    <i>demoForm.$error.required = <b>{{!!demoForm.$error.required}}</b></i><br/> 
 
</form> 
 
</body> 
 
</html>

関連する問題