4

我似乎找不到要求过滤选择输入具有一定长度的方法。我试过这样:

new dijit.form.FilteringSelect({
    'name': 'bla',
    'store': jsonRestStore,
    'searchAttr': "name",
    'pattern': '.{3,}',
    'regExp': '.{3,}'
});

但它不会改变任何事情。如果输入了至少 3 个字符,我希望过滤选择仅查询商店。不可能是那种异国情调的要求,可以吗?该商店后面有数千件商品,因此仅使用 1 或 2 个字符进行查询很慢。

4

1 回答 1

6

我进行了更多搜索,并在 dojo 邮件列表上找到了这篇文章。总而言之,在 FilteringSelect 中没有办法为它提供原生支持,但它非常容易实现。

// custom min input character count to trigger search
minKeyCount: 3,

// override search method, count the input length
_startSearch: function (/*String*/key) {
    if (!key || key.length < this.minKeyCount) {
    this.closeDropDown();
    return;
    }
    this.inherited(arguments);
}

同样在 API Docs中,有一个searchDelay属性可以帮助减少查询的数量。

searchDelay 
Delay in milliseconds between when user types something and we start searching based on that value
于 2013-04-11T13:29:49.533 回答