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

时间:2014-01-07 14:04:58

标签: javascript angularjs

我正在尝试使用输入[number]来验证< input type = number > 关于angularjs模块的指令。

使用类型编号的输入时,将max(或min)属性设置为数字,例如

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

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

<input type=number min="configRow.valueStart" max="configRow.valueEnd">,  那它不起作用。

我知道min和max只接受号码而且我在编写指令方面不太好,请帮助我任何这样的目录或任何建议将不胜感激。

2 个答案:

答案 0 :(得分:5)

minmax期待值。所以,这应该有效:

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

这是展示演示的plunker。 (这只是对文档演示的修改)。

目前,这些属性的来源如下所示。因此,您可以看到预期值会被转换为parseFloat的浮点值。因此,需要将模型属性{{}}插值为值。

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);
      }

答案 1 :(得分:0)

最大长度不适用于add_filter('woocommerce_package_rates', 'xa_hide_shipping_rates_when_free_is_available', 10, 2); function xa_hide_shipping_rates_when_free_is_available($rates, $package) { global $woocommerce; $version = "2.6"; if (version_compare($woocommerce->version, $version, ">=")) { foreach($rates as $key => $value) { $key_part = explode(":", $key); $method_title = $key_part[0]; if ('free_shipping' == $method_title) { $free_shipping = $rates[$key]; // Unset all rates. $rates = array(); // Restore free shipping rate. $rates[$key] = $free_shipping; return $rates; } } } else { if (isset($rates['free_shipping'])) { // Below code is for unsetting single shipping method/option. // unset($rates['flat_rate']); $free_shipping = $rates['free_shipping']; // Unset all rates. $rates = array(); // Restore free shipping rate. $rates['free_shipping'] = $free_shipping; } } return $rates; } 我知道的最好方法是使用oninput事件来限制maxlength,它是一个通用的解决方案适用于所有Javascript框架。请参阅以下代码。

<input type="number"