如何在角度js的三位数后添加点
问题描述:
我是新的角度js。我想输入模式XXX.XXXX。如果用户输入浮点值,那么它不应该做任何事情,除非用户输入1234456(非十进制值),那么如果用户输入12.909,它将自动使123.4560 ,那么它什么也不做。在第三个非十进制数字之后,它应该添加点。请帮助如何在角度js的三位数后添加点
答
试试下面这将有助于:
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>
答
您将有一个按键运行或监视绑定值的函数。 检查如果字符串是一个号码,然后使用该字符串的长度toFixed减去3,这样的事情(未测试):
if (str.isNaN()) {
return "";
} else {
var length = (str.length - 3);
return str.toFixed(length);
}
答
你可以在输入框的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
开始通过查看指令。 https://docs.angularjs.org/guide/directive然后发布你尝试过的东西。 –