我正在使用基于this的自定义observable numericObservable
,它强制knockout将数字字段序列化为json中的数字,而不是字符串;我有那部分工作。
我已添加验证以强制number
作为端口的字段类型:
self.port = ko.numericObservable(22).extend({ number: true });
..但验证不起作用100%。它似乎有时会获得非数字,有时它却无法识别。如果我清除端口的值,将焦点切换到另一个字段,然后返回并输入一个数字,它可以工作。
http://jsfiddle.net/SAFX/q4QCY/13/
如果我对一个普通的可观察对象使用验证,如下所示,它可以工作,所以我怀疑问题可能在于扩展numericObservable
。此外,我numericObservable
ko 2.2.2
使用ko 3.0.0
使用//works
self.port = ko.observable(22).extend({ number: true });
,我的小提琴使用{{1}}。
{{1}}
答案 0 :(得分:2)
不幸的是parseFloat
函数只是忽略非数字符号。您的代码行必须使用“+”来避免这种情况:
var parsedValue = parseFloat(+newValue);