我正在尝试验证 < 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 只接受数字,我不太擅长为此编写指令,请帮助我任何此类目录或任何建议。
最佳答案
min
和 max
需要一个值。所以,这应该有效:
<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/