0

我有一个使用 jQueryUI 创建的 Select 元素,然后使用敲除绑定。我还有一个用于过滤的文本输入元素(创建方式与选择相同)。在大多数情况下,过滤工作正常,但有时如果文本框中有一个值,我用鼠标选择它,然后按 Delete 键,我的事件会触发,数据会更改但 UI 不会刷新。

这是我的 Computed 属性的代码:

self.filteredItems = ko.computed(function () {
    if (self.valueToFilter() === "") {
        return self.items();
        //when the value is cleared this line gets
        //ran properly but the UI doesn't update
    } else {
        return jQuery.grep(self.items(), function (i) {
            return (i.indexOf(self.valueToFilter()) === 0);
        });
    }
});

任何帮助,将不胜感激。提前致谢。

4

1 回答 1

0

这应该使您的代码在 IE10 上工作:

<input type="text" id="in" data-bind="value: valueToFilter, valueUpdate: 'afterkeydown', event: { mouseup: function () {  valueToFilter(''); }}"/>

另请参阅:使用清除图标清除 IE10 上的文本输入时触发的事件

于 2013-04-27T21:22:07.823 回答