我正在尝试验证< input type = number >
通过使用输入[数字]
AngularJS 模块 ng 的指令。
当使用数字类型的输入时,最大(或最小)属性设置为数字,例如
<input type=number min="20" max="40">
它工作正常,但我的最小和最大数据是使用 ng-repeat 动态获取的数据,例如
<input type=number min="configRow.valueStart" max="configRow.valueEnd">
,
那么它就不起作用了。
我知道 min 和 max 只接受数字,而我不太擅长为此编写指令,请帮助我任何此类目录或任何建议,将不胜感激。
min
and max
正在期待一个值。所以,这应该有效:
<input type=number min="{{configRow.valueStart}}" max="{{configRow.valueEnd}}">
这里有一个plunker http://plnkr.co/edit/lPJhj6?p=preview显示演示。 (这只是文档演示的修改)。
目前,这些属性的来源如下所示。因此,您可以看到需要一个值,然后将其转换为浮点数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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)