type = number的用法允许输入0123456789.Ee- +甚至返回无效值?

时间:2018-03-13 07:13:06

标签: javascript html angularjs integer



var app = angular.module("myShoppingList", []);
app.controller("myCtrl", function($scope) {
  $scope.addMe="";
});

<html>
<head>
  <link rel="stylesheet" href="style.css">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.js"></script>
</head>
<body>
    <div ng-app="myShoppingList" ng-controller="myCtrl">          
      <input type="number" ng-model="addMe">
      
    <p>{{addMe}}</p>
  </body>
</html>
&#13;
&#13;
&#13;

实际上输入type = number不允许输入大多数特殊字符。但它只允许输入+ and - and (Adding and subscription)甚至为什么它不允许输入/ and * (divide and multiply)

当我们在输入框中输入- and +

时,输入字段值也将无效

我不确定这个问题是从浏览器还是Html发生的,因为我从0123456789.Ee-+ are all legal characters according to Chrome的答案中得到了一些细节。但我已经在IE 11浏览器中检查了这一点,这也遇到了同样的问题。所以我们对 input type = number should allow - and + like 0123456789.Ee-+价值有一个了解但我不知道允许这些字符的用途是什么?

  

我的主要问题是为什么type=number允许输入这些字符然后它为什么返回无效值?如果输入框返回无效值,那么为什么它允许输入那些承租人?有什么用? 使用

1 个答案:

答案 0 :(得分:0)

我知道为什么它允许这些字符。这是使用sed

  • . e + -

  • 1e1 = 10// use of e or E

  • 1e+1 = 10// use of +

  • 1e-1 = 0.1// use of -

  

所以这就是type = number允许输入这些字符的原因。如果我们输错了,那么只有它会返回1.1 = 1.1// use of .值。

您可以在下面的代码段中查看这些值。

&#13;
&#13;
invalid
&#13;
var app = angular.module("myShoppingList", []);
app.controller("myCtrl", function($scope) {
  $scope.eorE=1e1;
  $scope.float=1.1;
  $scope.plus=1e+1;
  $scope.mins=1e-1;
});
&#13;
&#13;
&#13;