我有一个具有值绑定的输入字段。绑定引用可写计算的可观测性。
预期的行为是:
但是,我只能选择updateValue: 'input'或updateValue: 'keydown',但两者都不能选择。在JavaScript代码中,可写计算无法检查发生了哪些事件。
我需要这种行为的原因是:如果用户只是键入,我想填写一个自动建议框,并希望粗体已键入的字母。为此,我需要keydown事件。但是,如果用户完成输入(失去焦点),我想做一些验证,然后保存输入的值。如果我使用input,验证是有效的,但是自动建议功能被打破了。如果我使用keydown,用户无法键入某些内容,因为验证总是失败,用户无法完成键入。
发布于 2014-08-16 10:15:37
假设您计算了名为self.inputValue,它引用了输入字段。
您可以将rateLimit扩展程序应用于perticular计算。
例如:
self.inputValue = ko.computed(function(){
//perform the required logic
}).extend({ rateLimit: { method: "notifyWhenChangesStop", timeout: 400 } });;其中timeout以毫秒为单位。它将保存400毫秒的更新或值通知。
这应该能解决你的问题。我为你做的小JSFiddle:http://jsfiddle.net/rahulrulez/x8jmcpLh/
rateLimit是在KO3.1.0中引入的,如果您使用的是旧库,则使用 节流阀 代替.
https://stackoverflow.com/questions/25329433
复制相似问题