2016-07-15 8 views
0

新しい角度のjです。私は入力パターンXXX.XXXXを入力したいと思います。ユーザーが浮動小数点値を入力したい場合は何もしないでください。ユーザーが1234456(10進数以外の値)を入力すると自動的に123.4560 と入力します。小数点以下3桁目の後にドットを追加する必要があります。親切に助けてください角度jsで3桁の後にドットを追加する方法

+1

スタートディレクティブを見て。 https://docs.angularjs.org/guide/directiveあなたが試したことを投稿してください。 –

答えて

0

はそれが役立つ次試してみてください。

JS

var myApp = angular.module('myApp',[]); 


function MyCtrl($scope) { 
    $scope.onBlur = function($event) { 

    var num = $scope.foo; 

     if (num.indexOf(".") == -1 && num.length > 4) 
     { 
     $scope.foo = num.substring(0,3) + "." + num.substring(3); 
     }  
    } 
} 

HTML

<div ng-controller="MyCtrl"> 
    <input type="text" ng-model="foo" ng-blur="onBlur($event)"/> 
</div> 

Demo Fiddle

0

あなたは、キー押下で実行されるか、バインドされた値を監視する機能を持っています。 チェック文字列が数値で、その後、toFixedを使用する場合は、マイナスの文字列の長さの3、このような何か(テストしていません):

if (str.isNaN()) { 
    return ""; 
} else { 
    var length = (str.length - 3); 
    return str.toFixed(length); 
} 
0

これは、入力ボックスのブラーイベントの簡単な機能を使用してこれを実現できます。

$scope.inputValue = ""; 
    $scope.checkDecimal = function() 
    { 
    if(!isNaN($scope.inputValue) && $scope.inputValue % 1 !== 0) 
    { 
     alert("Its a decimal value"); 
    } 
    else if(!isNaN($scope.inputValue) && $scope.inputValue.length > 3) 
    { 
     var deNominator = Math.pow(10, ($scope.inputValue.length - 3)); 
     $scope.inputValue = $scope.inputValue /deNominator; 
    } 
    else if(!isNaN($scope.inputValue) && $scope.inputValue < 1000) 
    { 
     $scope.inputValue = $scope.inputValue; 
    } 
    else 
    { 
     alert("Please enter a valid number value"); 
     $scope.inputValue = ""; 
    } 
    } 

参照用Plunker:http://plnkr.co/edit/tpl:8rFfZljYNl3z1A4LKSL2?p=preview

関連する問題