DooDoo
DooDoo

Reputation: 13467

How to filter options in a DropDownList using jQuery

I have 2 DropDownList.first DropDownList has 4 options.Second DropDownList has 20 options.I want when an option with value = 1 selected in first DropDownList I show All Element in second DropDownList.and if an option with value = 2 selected in first DropDownList I show some of second DropDownList options and So on. How I can do this using jQuery

Edit 1)

Code is :

<div>
    <asp:DropDownList ID="DropDownList1" runat="server" Height="72px" Width="184px">
        <asp:ListItem Value="1">All</asp:ListItem>
        <asp:ListItem Value="2">Apples</asp:ListItem>
        <asp:ListItem Value="2">Orange</asp:ListItem>
        <asp:ListItem Value="3">Onion</asp:ListItem>
    </asp:DropDownList>
    <br />
    <asp:DropDownList ID="DropDownList2" runat="server" Height="18px" Width="187px">
        <asp:ListItem Value="Apple_Style_1">Apple Style 1</asp:ListItem>
        <asp:ListItem Value="Apple_Style_2">Apple Style 2</asp:ListItem>
        <asp:ListItem Value="Apple_Style_3">Apple Style 3</asp:ListItem>
        <asp:ListItem Value="Orange_Style_1">Orange Style 1</asp:ListItem>
        <asp:ListItem Value="Orange_Style_2">Orange Style 2</asp:ListItem>
        <asp:ListItem Value="Orange_Style_3">Orange Style 3</asp:ListItem>
        <asp:ListItem Value="Orange_Style_4">Orange Style 4</asp:ListItem>
        <asp:ListItem Value="Onion_Style_1">Onion Style 1</asp:ListItem>
        <asp:ListItem Value="Onion_Style_2">Onion Style 2</asp:ListItem>
    </asp:DropDownList>
</div>

Upvotes: 4

Views: 23143

Answers (1)

Amar Palsapure
Amar Palsapure

Reputation: 9680

You can try this jsFiddle: http://jsfiddle.net/Chran/1/

HTML

<div>
<select ID="DropDownList1" Height="72px" Width="184px">
    <option Value="1">All</option>
    <option Value="2">Apples</option>
    <option Value="2">Orange</option>
    <option Value="3">Onion</option>
</select>
<br />
<select ID="DropDownList2" Height="18px" Width="187px">
    <option Value="Apple_Style_1">Apple Style 1</option>
    <option Value="Apple_Style_2">Apple Style 2</option>
    <option Value="Apple_Style_3">Apple Style 3</option>
    <option Value="Orange_Style_1">Orange Style 1</option>
    <option Value="Orange_Style_2">Orange Style 2</option>
    <option Value="Orange_Style_3">Orange Style 3</option>
    <option Value="Orange_Style_4">Orange Style 4</option>
    <option Value="Onion_Style_1">Onion Style 1</option>
    <option Value="Onion_Style_2">Onion Style 2</option>
</select>
</div>​

JavaScript

var options = $("#DropDownList2").html();
$("#DropDownList1").change(function(e) {
    var text = $("#DropDownList1 :selected").text();
    $("#DropDownList2").html(options);
    if(text == "All") return;
    $('#DropDownList2 :not([value^="' + text.substr(0, 3) + '"])').remove();
});​

You will have to change the Id, according to the ASP.Net Control Id.

Hope this helps you.

Upvotes: 6

Related Questions