【问题标题】:Knockout Validation: HTML5 min/max parsed as string淘汰赛验证:HTML5 最小/最大解析为字符串
【发布时间】:2013-04-10 14:06:12
【问题描述】:

似乎 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()));

【问题讨论】:

  • 是的,这似乎正是发生的事情。这是导致问题的行:params: element.getAttribute(attr) || true。如果您只是将 max/min 设置为字符串,则可以重新创建相同的问题。对我来说,这似乎是 KO 验证中的一个错误。

标签: validation knockout.js


【解决方案1】:

这是淘汰赛验证中的一个错误。它使用pull request 355 修复并使用version 2.0.0 发布。

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

【讨论】:

猜你喜欢
  • 2018-09-16
  • 2017-07-04
  • 2012-02-18
  • 1970-01-01
  • 2011-08-09
  • 2015-06-05
  • 2012-11-04
  • 1970-01-01
  • 2017-01-27
相关资源
最近更新 更多