在输入某些文本后,Knockout文本框hasfocus需要两次单击才能保留焦点

时间:2014-04-09 21:21:23

标签: knockout.js

我在文本框上有hasfocus databind,在输入一些文本然后点击另一个文本框后,焦点不会改变,直到你再次点击。无论您点击何处,似乎第一次点击都不会改变焦点。

这是一个演示此http://jsfiddle.net/9LuJy/1/的jsfiddle。

以下是导致此问题的视图模型。

var viewmodel = function() {
    var self = this;
    self.fields = ko.observableArray();
    self.fields.push(new Field());
}

var Field = function() {
    var self = this;
    self.isFocus = ko.observable(false);
    self.textValue = ko.observable();
}

这是html

<div data-bind="foreach: fields">
    <input type="text" data-bind="hasfocus: isFocus, value: textValue" />
</div>

<input type="text" />

我希望在输入后更新observable可能会这样做,所以可能需要某种延迟?

1 个答案:

答案 0 :(得分:1)

V2.3中已知的已知问题

在Firefox,Internet Explorer和Chrome中,我只注意到了Chrome中的问题。考虑到小提琴(2.2.1)中使用的Knockout版本,我发现this commentary与所描述的行为有关。升级版本将解决问题。

替代解决方案

如果升级版本不是一个可行的选择,可以考虑添加valueUpdate: 'afterkeydown'