【问题标题】:what is the use of type = number allow to type 0123456789.Ee-+ even it returning invalid value?type = number 允许输入 0123456789.Ee-+ 有什么用,即使它返回无效值?
【发布时间】:2018-08-21 08:38:03
【问题描述】:

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>

其实输入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 允许输入这些字符,那么为什么它返回无效值?如果输入框返回无效值,那么为什么允许输入这些租船人?有什么用? 使用

【问题讨论】:

  • 在这种情况下,这些不是用于加减的符号,而是指示数字是否低于或高于零
  • 另外,如果您在文本框中输入 (e),那么在数字类型文本框中也可以接受。了解更多关于 e 常量的信息 (en.wikipedia.org/wiki/E_(mathematical_constant))
  • @sachin 那为什么它不接受负值呢??
  • 因为数字也可以是负数或正数以保持 (+) 或 (-) 数,因此有 min 和 max 属性可用于限制用户输入
  • @MartinSchneider 能否请您清楚地阅读我的问题。我已经在我的问题中链接了这些细节。请看看我的主要问题。

标签: javascript html angularjs integer


【解决方案1】:

我知道为什么它允许这些字符。这里是. e + -的用法

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

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

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

  • 1.1 = 1.1// use of .

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


您可以在下面的 sn-p 中检查这些值。

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;
});
<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="eorE">
      <input type="number" ng-model="float">
      <input type="number" ng-model="plus">
      <input type="number" ng-model="mins">
      
    <p>{{addMe}}</p>
  </body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多