2009-04-01 9 views
32

入力時にドロップダウンの内容をフィルタリングするプロトタイププラグインを使用しました。たとえば、テキストボックスに「cat」と入力した場合、サブストリング 'cat'を含む項目だけがドロップダウンのオプションとして残されます。Jquery:入力時のフィルタのドロップダウンリスト

これを行うことができるjqueryプラグインを知っている人はいますか?

答えて

27

私は数年前にa little script to do thisを書いた:

+0

これはまさに私が後にしたものです。誰かがこれをJQueryプラグインとしてパッケージ化して配布してもらえますか?私は来月にいくつかのプラグインをリリースすることを考えており、これは良いものになるでしょう。 –

+0

それに行く。それが問題なければ、ソースの元のページに戻ってリンクするかもしれませんか? –

+0

それがリリースされたら、確かに、確かに!私は、JQuery/prototypeプラグインとしてのリリースを意味するコードのロードに座っていました。 –

8

jQueryのプラグインautocomplete

編集:私が最初に間違ったオートコンプリートのプラグインにリンクされています。

+0

このプラグインは、最後には(2008年1月)1年以上前に更新されました。それはi-net時間が少し長いです。 – BryanH

+0

これは、私が知る限り、すべてのブラウザで完璧に機能します。今あなたは私に少し心配している... – karim79

+0

それはリストをフィルタリングするか、それとも入力に基づいてリストを作成するだけですか? –

12

は、これらのプラグインをチェックしてください。おそらく、おそらくjQueryプラグインとして簡単にパッケージ化できます。あなたはそれを歓迎します。

また、PHP Function Referenceダッシュボードウィジェットでコードを見たい場合は、これも同じです。

+0

リンクがもう機能しないことを確認してください... – Ingo

1

本当の選択ボックスとマッチングオプションテキストの半ばに基づいて「jqueryのオプションフィルター」、試してみてください。diyism

50

ため http://plugins.jquery.com/project/jquery_options_filter

は、私はちょうど同じような何かを探していた、そして最高のものを私が必要とするものはJQuery UI MultiSelectのようです。これは、マルチ選択ボックスをかなり滑らかなデュアルリストビューに変え、マスターリストでライブフィルタリングを行います。

EDIT:新しい開発!

Chosenは長く、扱いにくい選択ボックスよりユーザーフレンドリーにするJavaScriptプラグインです。これは、両方のjQueryとプロトタイプの味で現在利用可能です。」

近い将来、すべての選択使用プロジェクトで完全にChosenを使用しています。

+1

+100ポイント! MultiSelectはまさに私が探していたプラグインです! – Mark

+2

@マークチェック[選択](http://harvesthq.github.com/chosen/);それはMultiSelectよりもはるかに良いようです。 –

+0

選んだのが最高です! – dariol

25

Select2は、かなり最近のChosenのフォークであり、さらに多くの機能を備えています(たとえば、個々のアイテムのAJAX +カスタムHTMLなど)。

1

私はこの機能をすばやく汚れて実装しました。いくつかのグローバル変数を使用します。これらを削除するには、実装を改善することが必要な場合があります。

ここで '#xsca_member_filter'はテキスト入力としてのフィルタで、 '#members'は選択入力です。

$('documenet').ready(function(){ 
    init(); 
    $('#xsca_member_filter').keyup(function(){ 
     filter($(this)); 
    }); 
}); 

//save all available options with their values and the empty option. 
init = function(){ 
    options = new Object(); 
    $('#owner option').each(function(){ 
     var obj = $(this); 
     if(obj.attr("value") != "") 
      options[obj.attr('value')] = obj.html(); 
     else 
      emptyOption = obj.html(); 
    }); 
    selObj = $('#owner'); 
}; 

filter = function(elem){ 
    var filter = elem.val(); 
    var selected = $('#owner option:selected').val(); 

    //delete all options and add the empty option 
    selObj.html(""); 
    selObj.append("<option> "+emptyOption+" </option>"); 

    //add all options conaining the filter string 
    for(value in options){ 
     var option = options[value]; 
     if((options[value]).indexOf(filter) != -1){ 
      selObj.append("<option value='"+value+"'> "+options[value]+" </option>"); 
     } 
    } 

    //select the previously selected option 
    $("#owner option[value = '"+selected+"']").prop("selected", true); 
} 
0

$(document).ready(function() { 
 
    $("#myInput").on("keyup", function() { 
 
    var value = $(this).val().toLowerCase(); 
 
    $("#filter *").filter(function() { 
 
     $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1) 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 

 
<h2>Filter</h2> 
 
<input id="myInput" type="text" placeholder="Search.."> 
 
<br><br> 
 
<div class="filter-by"> 
 
    <span>Filter by:</span> 
 
    <select class="status-filter" id="filter"> 
 
    <option value="">All</option> 
 
    <option value="paid">Paid</option> 
 
    <option value="accepted">Accepted</option> 
 
    <option value="pending">Pending</option> 
 
    <option value="rejected">Rejected</option> 
 
    </select> 
 
</div>

+0

単純な選択タグの例です。 –

関連する問題