输入框没有浮动值

时间:2016-04-28 06:15:01

标签: jquery html angularjs

  

块引用   在高度字段的情况下,它取3个整数值,其正确但在此之后它必须采用2个浮动值,例如555.34   即使我使用step =" 0.01"和max =" 3"但是在按键时它不会在3位数后取任何浮点值   块引用



ARCMAIN

var app = angular.module('Calc', []);
 var inputQuantity = [];
    $(function() {
      $(".form-control").each(function(i) {
        inputQuantity[i]=this.defaultValue;
         $(this).data("idx",i); // save this field's index to access later
      });
      $(document).on("keypress",".form-control", function (e) {
        var $field = $(this),
            val=this.value+''+String.fromCharCode(e.charCode),pattern;
        if(this.step==0.00)
          pattern=/[^0-9]/
          else
          pattern=/[^0-9.]/
        if ( val>parseInt(this.max,10)||pattern.test(val)|| (val.match(/\./) && (val.match(/\./g).length>1 || val.replace(/\d+\./,'').length>2))) {
               e.preventDefault();
        }
      });      
    });
app.controller('Calc_Ctrl', function ($scope, $http) {
     $scope.choices = [{id : 'choice1', l2 : 0, b2 : 0}];
     $scope.areas = [{id : 'choice2', total : 0}];

     $scope.addNewChoice = function () {
          var newItemNo = $scope.choices.length + 1;
          $scope.choices.push({
               'id' : 'choice' + newItemNo, l2 : 0, b2 : 0
          });
     };
     $scope.removeChoice = function () {
          var lastItem = $scope.choices.length - 1;
          if (lastItem !== 0) {
               $scope.choices.splice(lastItem);
          }
     };
});




1 个答案:

答案 0 :(得分:0)

所以我已经开始并且真正简化了这段代码。我知道您关注的是遵循产生类似123.33的格式的价值。

我已在输入类型中使用ng-pattern以确保输入与所需模式匹配。

正则表达式

[0-9]{3}[.][0-9]{2}

HTML

<input type="number" class="form-control text-red bold" id="length"  ng-model="choice.l2" ng-pattern="/[0-9]{3}[.][0-9]{2}/"  min="0" max="999" maxlength="6" step="0.00">

如果您的输入符合所需的正则表达式,则长度和高度字段才有效。

这是demo