2016-09-21 12 views
0

ウェブアプリケーション(AngualrJS 1.5 + HTML5)では、入力タイプ=「番号」があります。私は0.5にステップしたい。問題は、ユーザーが0.7を書くと、フォームはエラーを通知しないということです。フィールド内の数字を自動的に丸めるにはどうすればよいですか?AngularJSで入力タイプ番号を強制的にラウンドステップ

これは、htmlコードです:

<input type="number" ng-model="height" name="height" min="1" max="10000" step="0.5"> 

私はページを保存するとき、これはコードをJS追加しようとしました:

$scope.age = (Math.round($scope.age * 2)/2).toFixed(1); 

が、私は、コンソールにこのエラーが表示されます。

angular.js?v=0.2:13708 Error: [ngModel:numfmt] Expected `6.0` to be a number 

更新日: 私はplunkerを作った:PLNKR

+1

jsFiddleまたはそのような何か? – Franky238

+1

モデルにStringを割り当てているようですが、数字である必要があります。parseFloat(yourmodel) –

+0

plunkerを作った – panagulis72

答えて

1

以下のコードをご覧ください。

<body ng-app="numberExample"> 
    <script> 
    angular.module('numberExample', []) 
    .controller('ExampleController', ['$scope', function($scope) { 
     $scope.age = 5; 
     $scope.roundNo = function(){ 
     $scope.age = (Math.round($scope.age * 2)/2); 
     }; 
     $scope.save = function(){ 
     } 
    }]); 
</script> 
<form name="myForm" ng-controller="ExampleController"> 

    <input type="number" name="input" ng-model="age" 
      min="0" max="1000" step="0.5" ng-change="roundNo()" required> 

</form> 
<button ng-click="save()">Save</button> 
</body> 

の作業plunker here

+0

ありがとう! – panagulis72

関連する問題