2014-07-15 20 views
-1

我在选择菜单上使用Select2,当用户键入搜索字段时,Select2将搜索这些字母并显示它们,即使它们只出现在选项中间。举例来说,如果我有一个选择是这样的:select2搜索键入的预加载列表

<select id="e1"> 
    <option value="apple">Apple</option> 
    <option value="grape">Grape</option> 
    <option value="prune">Prune</option> 
</select> 

我选择二代码如下所示:

$('#e1').select2({ 
        placeholder: "", 
        allowClear: true, 
        width: '600px', 
        selectOnBlur: true, 
        scrollpad: true, 
       }); 

而且用户只需类型在搜索框中输入“P”,它会显示所有三个选项。我想在这种情况下发生的事情就是它只显示“Prune”。有没有办法做到这一点?我环顾了Google和文档,或者我错过了一些非常重要的东西,或者它不在那里。有人在这件事上有任何智慧的话语吗?

+0

欢迎SO。你能告诉我们你试过了什么吗?否则,我没有被支付给你做你的节目。 –

+0

问题得到解答,但无论如何你是对的。我添加了使用Select2的东西,以防其他人搜索此问题并需要查看它。结果显而易见和愚蠢,就像大多数问题出现时一样。 – BammaHamma

+0

不错,谢谢。我已经删除了我的-1。 –

回答

1

您只需提供自定义matcher设置。

这是当前默认的匹配功能:

function(term, text) { 
    return text.toUpperCase().indexOf(term.toUpperCase())>=0; 
} 

例如,您可以用

function(term, text) { 
    return text.substr(0, term.length).toUpperCase() == term.toUpperCase(); 
} 

示例设置替代它:

$("#e1").select2({ 
    // ...other options... 
    matcher: function(term, text) { ... } 
}); 
+0

唉,废话。我现在在文档中看到了。我想我到了那个时候,我感到沮丧,只是掠过它。谢谢,接受,因为它是正确的。我感谢你给我的东西,而不是像其他答案一样粗鲁,让我们说明显的问题,我见过。 – BammaHamma