我正在尝试使用输入[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只接受号码而且我在编写指令方面不太好,请帮助我任何这样的目录或任何建议将不胜感激。
答案 0 :(得分:5)
min
和max
期待值。所以,这应该有效:
<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"