从输入类型编号获取带小数的整个值

时间:2017-02-21 11:22:57

标签: javascript angularjs html5

我有一个类型编号的输入字段。我想检索用户输入的确切值而不会失去焦点。

  1. 当用户输入1时,应返回1
  2. 当用户输入11时,应返回11
  3. 当用户输入11时。它应该返回11.(但它返回没有小数的值 - 11)
  4. 我尝试过: 我尝试了keyup事件,但元素的值总是没有小数。并尝试了modelctrl.parsers.push()但是当输入为十进制(点)时,解析器不会触发。

    我已查看modelctrl.$viewValuemodelctrl.$modelValue。一切都返回没有小数的值。

    我不知道它将返回完整值的正确事件。

2 个答案:

答案 0 :(得分:0)

在此demo fiddle中尝试。这是在JavaScript / AngularJS / HTML5中处理浮点值的正确方法。

视图

<div ng-controller="MyCtrl">
  <input type="number" 
         step="0.01" 
         ng-class="{ 'error' : error }" 
         ng-model="test" 
         ng-change="change()" />
  <br >
  Number output: {{ test | number:2 }}
</div>

AngularJS应用程序

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

myApp.controller('MyCtrl', function ($scope) {
    $scope.test = 0.2;
    $scope.error = false;

    $scope.change = function () {

      console.log($scope.test);

      if (!$scope.test) {
            $scope.error = true;
      } else {
            $scope.error = false;
      }
    }
});

答案 1 :(得分:0)

<div ng-app="myApp" ng-controller="myCtrl">
No: <input type="text" ng-model="no" ng-change="changeNoDecimal(no)"><br>
{{no1}}
</div>


<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.changeNoDecimal = function(no){
        $scope.no1 = Number(no).toFixed(2);
    }   
});
</script>