是否有一种简单的方法可以使用data-bind="textInput: aProperty"并在用户类型中添加输入掩码或一些自动格式化
使用蒙面输入插件类型的作品,但我失去了Knockout的"textInput:“提供的”随你输入“的更新,因此脚本的其他部分只能在字段失去焦点后才看到更改(实际上,在Knockout中作为一个普通的”值:“绑定)。
使用计算可观察到的格式的天真解决方案无法工作,因为每次对更新自己的字段的击键都会将输入焦点更改为页面中的其他位置,因此用户无法继续键入。
我能让这两个库彼此友好相处吗?还是我应该做我的自定义解决方案?他们在事件处理程序中做了很多事情来兼容所有的浏览器,所以让它们一起工作并不奇怪,但这也正是为什么我不想自己去处理所有这些键、输入、更改和事件的原因。
以前在StackOverflow上的所有答案都不介意只在字段失去焦点之后才传播更改。也许这些答案是在textInput被添加到Knockout之前发布的,所以当时没有什么更好的了。所以我才问个新问题。
发布于 2015-05-22 22:26:23
我写了一个小提琴,它只使用一个可观察到的计算机,而且我没有焦点问题。这个能像你预期的那样工作吗?
var displayString = ko.observable('');
var formattedString = ko.computed({
read: function () {
return displayString();
},
write: function (newValue) {
var f = format(newValue);
console.debug("Format", newValue, "=", f);
displayString(f);
}
});http://jsfiddle.net/csmmnq25/
https://stackoverflow.com/questions/30406535
复制相似问题