2

KO 验证插件似乎将 HTML5 数字输入属性(例如,最小值、最大值)解析为字符串,而不是数字。这导致当数字输入具有最小/最大属性时,它们被错误地确定为无效。请参阅: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()));
4

1 回答 1

2

这是淘汰赛验证中的一个错误。它已通过pull request 355修复,并以2.0.0 版本发布。

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

于 2013-04-18T20:43:24.680 回答