小编Ant*_*Ego的帖子

如何将dojo.FilteringSelect配置为匹配通配符值?

下面是填充了用户数据的filteringSelect的示例.我的目标是在显示的值上执行wilcard匹配.例如,如果用户键入'son',则下拉匹配将是"homer simpSON"和'carl calSON'.默认情况下,匹配将仅位于标签的开头.

我尝试更改dijit.byId('userselect').searchAttr,但将其设置为除字符串之外的任何内容都会导致错误的行为.

<input id="userselect">

<script type="text/javascript">
    dojo.require("dijit.form.FilteringSelect");
    dojo.require("dojo.data.ItemFileReadStore");

    var user_data = {
        "itentifier":"user_id",
        "label":"label",
        "items":[
            {"first_name":"Waylon","last_name":"Smithers","label":"Waylon Smithers","user_id":7}
            ,{"first_name":"Carl","last_name":"Carlson","label":"Carl Carlson","user_id":6}
            ,{"first_name":"Homer","last_name":"Simpson","label":"Homer Simpson","user_id":4}
            ,{"first_name":"Lenny","last_name":"Leonard","label":"Lenny Leonard","user_id":5}
            ,{"first_name":"Montgomery","last_name":"Burns","label":"Montgomery Burns","user_id":8}
            ]
        };

    dojo.addOnLoad(function() {
        var userStore = new dojo.data.ItemFileReadStore({
            //url: "/user/lookup",
            data: user_data
        });
        var filteringSelect = new dijit.form.FilteringSelect({
            id: "userselect",
            name: "userselect",
            store: userStore,
            searchAttr: 'label' //["first_name", "last_name", "oasis"]
        },
        "userselect");
    });
</script>
Run Code Online (Sandbox Code Playgroud)

javascript dojo javascript-framework

5
推荐指数
2
解决办法
3050
查看次数

标签 统计

dojo ×1

javascript ×1

javascript-framework ×1