【问题标题】:Get the whole value with decimal from input type number从输入类型号中获取带小数的整数
【发布时间】:2017-02-21 11:22:56
【问题描述】:

我有一个数字类型的输入字段。我想在不失去焦点的情况下检索用户输入的确切值。

  1. 当用户输入1 它应该返回1
  2. 当用户输入11 它应该返回11
  3. 当用户输入11。它应该返回11.(但它返回的值没有小数点 - 11)

我尝试过的: 我尝试了 keyup 事件,但元素的值总是没有小数点。并且还尝试了modelctrl.parsers.push(),但是当输入为十进制(点)时解析器不会触发。

我已经检查了modelctrl.$viewValuemodelctrl.$modelValue。一切都返回不带小数的值。

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

【问题讨论】:

  • 有任何反馈或建议 user24..?

标签: javascript angularjs html


【解决方案1】:

试试这个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;
      }
    }
});

【讨论】:

  • 我在移动设备上使用它。因此,如果用户已经附加了浮点值,用户将如何输入其他值。如果用户输入多个小数点(点)会怎样。
  • @user2436548 我添加了错误处理。这应该为你做。
【解决方案2】:
<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>

【讨论】:

    猜你喜欢
    • 2017-02-25
    • 2021-09-28
    • 2021-12-04
    • 2012-04-26
    • 2014-07-24
    • 2016-03-25
    • 2014-05-07
    • 1970-01-01
    • 2012-02-04
    相关资源
    最近更新 更多