2014-04-10 51 views
0

我想在這裏實現的是我有一個文本輸入,當我鍵入一個字符串例如「幫助」 - 我希望所有的選項文本是「幫助「在列表中自動選擇。jquery select2 - 選擇所有選項與輸入的文本字符串

對不起,我應該用選擇2的jQuery插件

例如提到IM - >

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(); 

誰能幫我這個好嗎?

我已經做了一個jsfiddle來顯示我想要的待辦事項:http://jsfiddle.net/3ZhWu/2/ 但它顯然不工作。

回答

1

試試這個:

$('#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

+1

真棒!做到了!謝謝! – rubberchicken

+0

只是一個問題......如果我只是想*添加*從輸入字符串中找到這些選項我會怎麼做?因爲每次我輸入「幫助」,然後點擊按鈕它的好處..但是,如果我想添加額外的「BPS」多列表所有以前的幫助消失...我知道這不是我的原始問題的一部分..只是如果你知道..非常感謝 – rubberchicken

+0

@rubberchicken:使用這個http://jsfiddle.net/kunknown/3ZhWu/4/。希望這可以幫助你。 – Unknown

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

Reference

+0

對我不起作用......你想嘗試得到它與我的jsfiddle一起工作? – rubberchicken

+0

Maby這可以幫助你;)(不只是供參考的答案)http://mobifreaks.com/html5-data-attributes-search-using-jquery/ – HenryW

+0

nope ...沒有幫助。 – rubberchicken

0

嘗試......

$('#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'。它會選擇選項。 如果你想完全相同的字符串使用相等性檢查。

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

嘗試: http://jsfiddle.net/L4ob780b/2/