2016-07-15 35 views
0

我是新的角度js。我想輸入模式XXX.XXXX。如果用戶輸入浮點值,那麼它不應該做任何事情,除非用戶輸入1234456(非十進制值),那麼如果用戶輸入12.909,它將自動使123.4560 ,那麼它什麼也不做。在第三個非十進制數字之後,它應該添加點。請幫助如何在角度js的三位數後添加點

+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

你可以在輸入框的blur事件上使用一個簡單的函數來實現這一點。

$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