jQuery自动完成1.9.2和淘汰赛的问题

时间:2013-02-19 12:53:28

标签: jquery-ui autocomplete knockout.js

我一直在使用此jsfiddlefrom this initial SO question)的敲除绑定一段时间,它一直有效。

升级到jQuery 1.8.3和jQuery UI 1.9.2(jsfiddle)后,在输入中输入文本时,在填充项目列表(但未选中!)后,输入文本框将被清除,你必须从头开始重新打字。这很烦人,因为你无法完成文本输入,因为你总是需要从头开始。

如果jqAutoSourceInputValuejqAutoSourceValue具有相同的属性名称,则它可以正常工作,但选择后的id或输入值不是所需的值。

1 个答案:

答案 0 :(得分:2)

看起来这个问题来自于绑定的update函数依赖于正在更新的observableArray这一事实。我不太确定jQuery UI中有什么变化可以使之前的实际行为发生变化,但是一个修复是更新到Knockout 2.2.1并通过peek函数访问observableArray以避免依赖。类似的东西:

var source = (ko.isObservable(allBindings.jqAutoSource) ? allBindings.jqAutoSource.peek() : allBindings.jqAutoSource) || [];

更新了小提琴:http://jsfiddle.net/rniemeyer/xXuq6/

如果您无法更新到KO 2.2.1,那么还有其他一些方法可以实现。让我知道。