javascript - 输入类型= angularjs中的数字验证

标签 javascript angularjs

我正在尝试验证 < input type = number >通过使用输入 [number] angularjs模块ng指令。

当使用数字类型的输入时,最大(或最小)属性设置为数字,例如

<input type=number min="20" max="40">

它工作正常,但我的最小和最大数据是使用 ng-repeat 动态传入的数据,例如

<input type=number min="configRow.valueStart" max="configRow.valueEnd"> , 那么它是行不通的。

我知道 min 和 max 只接受数字,我不太擅长为此编写指令,请帮助我任何此类目录或任何建议。

最佳答案

minmax 需要一个值。所以,这应该有效:

<input type=number min="{{configRow.valueStart}}" max="{{configRow.valueEnd}}">

这是一个plunker显示演示。 (这只是对文档演示的修改)。

目前,这些属性的来源如下所示。因此,您可以看到需要一个值,然后使用 parseFloat 将其转换为 float 。因此,需要将模型属性 {{}} 插入到一个值中。

src/ng/directive/input.js

if (attr.min) {
        var minValidator = function(value) {
          var min = parseFloat(attr.min);
          return validate(ctrl, 'min', ctrl.$isEmpty(value) || value >= min, value);
        };

        ctrl.$parsers.push(minValidator);
        ctrl.$formatters.push(minValidator);
      }

      if (attr.max) {
        var maxValidator = function(value) {
          var max = parseFloat(attr.max);
          return validate(ctrl, 'max', ctrl.$isEmpty(value) || value <= max, value);
        };

        ctrl.$parsers.push(maxValidator);
        ctrl.$formatters.push(maxValidator);
      }

关于javascript - 输入类型= angularjs中的数字验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20973649/

相关文章:

javascript - 使用javascript定位h1中每个单词的首字母

html - 使用 getText() 验证元素在使用 typeahead 时返回空字符串

javascript - 如何从 JavaScript/jQuery 逻辑中删除 HTML 代码

javascript - 带斜线的 angularjs 路由

javascript - Angularjs 以各种形式动态添加表单字段

javascript - Angular 2 ng-bootstrap 开启多个模型

javascript - 在一个函数中调用另一个函数

javascript - 通过 AJAX 加载元素?

javascript - 四舍五入至小数点后 6 位

javascript - Jquery:将值传递给数组格式字段中的下一个字段