jquery select2-使用输入的文本字符串选择所有选项

jquery select2 - Select all options with inputted text string

本文关键字:选择 字符串 选项 文本 select2- 输入 jquery      更新时间:2023-09-26

我在这里试图实现的是我有一个文本输入,当我键入一个字符串(例如"HELP")时,我希望所有"HELP"选项文本都能在列表中自动选择。

对不起,我应该提到我使用jquery 的select2插件

示例-->

html:

<select id="select2" name="select2" multiple class="select2" style="width: 300px;">
<option value="1">ABC</option>
<option value="2">BPS</option>
<option value="3">BPS</option>
<option value="4">HELP</option>
<option value="5">HELP</option>
<option value="6">EX</option>
<option value="7">HELP</option>    
</select>
<br /><br />
<input type="button" name="Button" id="selectspecify" value="Select String" />&nbsp;
<input size="50" name="selectstring" id="selectstring" value="" placeholder="Type in an option name">

jquery:

$('#selectspecify').click(function() {
    var selectstring = $('#selectstring').val();
    $('#select2''[''] option:contains(' + selectstring + '))').select2('destroy').find('option').prop('selected', 'selected').end().select2() 
});
$(".select2").select2();

有人能帮我做这个吗?

我做了一个小提琴来展示我想要做的事情:http://jsfiddle.net/3ZhWu/2/但它显然还不起作用。

试试这个:

$('#selectspecify').click(function() {
    var selectstring = $('#selectstring').val();
    var stringVal = [];
    $('#select2').find('option').each(function(){
        if($(this).is(':contains(' + selectstring + ')')){
                  stringVal.push($(this).val());
        }
        $('#select2').val(stringVal).trigger("change");
    });
});
$(".select2").select2();

参考编号:http://ivaynberg.github.io/select2/

DEMO

$('#selectspecify').click(function() {
    $('#select2').select2("val", $('#select2 option:contains(' + selectstring + ')')
    .map(function(){
        return $(this).val();
    }).get());
});

尝试:http://jsfiddle.net/L4ob780b/2/

$( "option:contains('Help')" );

参考

试试这个。。。

$('#selectspecify').click(function() {
    var selectstring = $('#selectstring').val().toLowerCase();
$('#select2 option').each(function() {
    var inval = $(this).html().toLowerCase();
    console.log(inval);
    if(inval.indexOf(selectstring) != -1) {
        $(this).prop('selected',true);
    }
});
});

这个实际上是检查子字符串。所以即使你给"h"。它将选择选项。若您想要完全相同的字符串,请使用相等性检查。