Knockout验证:HTML5 min / max解析为字符串

时间:2013-04-17 17:26:13

标签: validation knockout.js

KO验证插件似乎将HTML5数字输入属性(例如,min,max)解析为字符串,而不是数字。这导致数字输入在具有最小/最大属性时被错误地确定为无效。请参阅:http://jsfiddle.net/hTvsj/

HTML:

<label>Some number, valid between 0 and 10</label>
<input type="number" required min="0" max="10" data-bind="value: someNum"/>

JS:

function vm(){
    self=this;
    self.someNum=ko.observable("5");
}
ko.validation.configure({
    parseInputAttributes: true,
});
ko.applyBindings(ko.validatedObservable(new vm()));

1 个答案:

答案 0 :(得分:2)

这是Knockout验证中的一个错误。它已使用pull request 355修复,并随version 2.0.0一起发布。

请注意,要使其工作,observable中的值将需要存储为数字,而不是字符串。您可以使用数字扩展器(位于http://knockoutjs.com/documentation/extenders.html)强制输入的值存储为数字而不是字符串。