dijit过滤选择最小长度

时间:2013-04-11 12:58:38

标签: dojo

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

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

但它并没有改变一件事。我希望过滤选择仅查询商店,如果已输入至少3个字符。不能那种异国情调的要求,可以吗?该商店后面有数以千计的商品,所以仅用1或2个字符查询就很慢了。

1 个答案:

答案 0 :(得分:6)

我做了一些搜索,在dojo邮件列表上找到了this post。总而言之,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