如何使用多个参数过滤select2下拉列表

时间:2015-09-23 07:29:29

标签: jquery twitter-bootstrap jquery-select2 metronic

我使用了select2类型下拉列表并使用值文本对进行绑定,并根据(tenancyname)文本正确进行过滤以下。

<li class="dropdown" id="liTenancy" style="margin-top: 4px; min-width: 250px !important;">                           
                        <select class="form-control select2me" data-placeholder="Select..." style="white-space: nowrap;">


                                    @foreach (var Tenancy in Entity)
                                    {
                                        <option @(SelectedTenancy == Tenancy.TenancyId ? "selected=\"selected\"" : "") value="@Tenancy.TenancyId">
                                            <a class="optionTenancy" href="javascript:void(0);" id="@Tenancy.TenancyId">@Tenancy.TenancyName</a>
                                        </option>
                                    }
                        </select>
                    </li>

现在我想用 tenancyname(text)或tenancyid(value)过滤此列表(用户可以同时使用两者来过滤列表)那么如何在不使用远程调用的情况下自定义js? ?

1 个答案:

答案 0 :(得分:1)

感谢kevin的建议,我发现我的解决方案如下,这对其他任何用户都有帮助

我在id属性中放了id,在option标签的alt属性中放了guid,并使用自定义匹配器,如下所示

$('select.select2me').select2({
                placeholder: "Select",
                allowClear: true,                
                matcher: function (term, text, opt) {
                    return text.toUpperCase().indexOf(term.toUpperCase()) >= 0
                    || opt.attr("alt").toUpperCase().indexOf(term.toUpperCase()) >= 0
                    || opt.attr("value").toUpperCase().indexOf(term.toUpperCase()) >= 0;
                }
            });