2016-07-11 9 views
2

私はselect2を使うときにすべてのマッチを簡単に選択できるようにしたいと思います。select2ですべてのマッチを追加する4.0.3

既存のコード

私は現在、SELECT2 4.0.3とjQuery 1.11を使用して、次のコードを持っています。

<select class="js-example-basic-multiple" multiple="multiple"> 
    <option value="AL">Alabama</option> 
    <option value="AK">Alaska</option> 
    <option value="AZ">Arizona</option> 
    <option value="WY">Wyoming</option> 
</select> 
$(".js-example-basic-multiple").select2(); 

コードhttps://jsfiddle.net/rwinch/t7112qcc/5/

行動の完全なjsfiddleは、私は誰かが、ユーザーが簡単にすべての一致を選択できるように上記のコードを修正するために私を助けることができる

を望みます。例えば、画面は次のように見える場合:

enter image description here

、ユーザーはCTRL + Aを押し、入力して、その結果は次のとおりです。

enter image description here

+0

が起こらない何@Rayonクローム52 – Rayon

+0

に私と一緒に起こらないコード内のすべてのコメントを残してきましたか?一致する値が選択されていないと言っている場合は、予期したとおりです。私はちょうど私が今(解決策ではない)のコードを提供しようとしていました。私はこれをより明確にするために質問を更新しました。 –

+0

_ "結果は" _または_ "結果は" _?親愛なる、何が起こっているのか、あなたが何が起こることを期待しているのかをお聞かせください。 – Rayon

答えて

5

私はあなたのフィドルをフォークしてきました、あなたはここでそれを試すことができます:https://jsfiddle.net/alienpavlov/z34qczr6/1/

$(".js-example-basic-multiple").select2(); 
 

 
$(document).on('keyup', ".select2-search__field", function(e) { 
 
    //if Ctrl+A pressed 
 
    if (e.keyCode == 65 && e.ctrlKey) { 
 
     //Select only filtered results 
 
     $.each($(".select2-results__options").find('li'), function(i, item) { 
 
      $(".js-example-basic-multiple > option:contains('" + $(item).text() + "')").prop("selected", "selected"); 
 
     }); 
 
     //Remove entered letters and close suggestions 
 
     $(this).val("").click(); 
 
     //Select with select2 
 
     $(".js-example-basic-multiple").trigger("change"); 
 
    } 
 
});
select { 
 
    width: 100%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet"/> 
 
<p> 
 
    I'd like an easy way for users to add all matches. For example the user 
 
</p> 
 
<ul> 
 
    <li>Enters "A"</li> 
 
    <li>Presses CTRL+A or Meta+A all matches are selected</li> 
 
    <li>Presses enter all matches are added</li> 
 
</ul> 
 
<select class="js-example-basic-multiple" multiple="multiple"> 
 
    <option value="AL">Alabama</option> 
 
    <option value="AK">Alaska</option> 
 
    <option value="AZ">Arizona</option> 
 
    <option value="WY">Wyoming</option> 
 
</select>

私は

+0

ありがとう!これは公式のAPIを使用していませんが、select2のドキュメントではこれが現在可能であるとは思われません。 –

+0

はい、私はそのためのオプションが見つかりませんでしたので、そうではありません。だから、私のソリューションはハックのようなものですが、それは機能します。 –

関連する問題