"Advanced Cascading Dropdown Search"
Bootstrap 3.3.0 Snippet by ellayararwhy

<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <!-- Choose a different secondary drop down depending upon the primary drop down selection. Used for multi-param searches --> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="input-group" id="adv-search"> <!-- <input type="text" class="form-control" placeholder="Search for events by attributes" /> --> <div class="input-group-btn"> <div class="btn-group" role="group"> <div class="dropdown dropdown-lg"> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="caret"></span></button> <div class="dropdown-menu dropdown-menu-right" role="menu"> <form id="search_form"class="form-horizontal" role="form"> <div class="form-group"> <label for="filter">Filter by</label> <select id="event_attribute" class="form-control"> <option value="0" selected>System/Service</option> <option value="1">Sites</option> <option value="2">Author</option> <option value="3">Last modifier</option> <option value="4">Notified recipients</option> <option value="5">More information</option> </select> </div> <div id="system_service_search" class="form-group" style="display: none;"> <label id="system_label_attribute" for="filter">Find system/service</label> <select id="system_service_select" class="form-control"> <option value="0">Windows Servers - Pilot Security Group</option> <option value="1">GroupNet/GroupShare</option> <option value="2">GroupTrack</option> <option value="3">Cork Network</option> <option value="4">SMS GroupS3</option> </select> </div> <div id="site_search" class="form-group" style="display: none;"> <label id="site_label_attribute" for="filter">Site (multiple selections allowed)</label> <select multiple id="site_select" class="form-control"> <option value="0">Foster City</option> <option value="1">London</option> <option value="2">County Cork</option> <option value="3">Singapore</option> <option value="4">Lost City</option> </select> </div> <div id="author_search" class="form-group" style="display: none;"> <label id="author_label_attribute" for="filter">Author</label> <select id="author_select" class="form-control"> <option value="0">Greg Nickles</option> <option value="1">Richard Wang</option> <option value="2">Igor Shmartguy</option> <option value="3">Larry Hall</option> <option value="4">Unknown Soldier</option> </select> </div> <div id="modifier_search" class="form-group" style="display: none;"> <label id="modifier_label_attribute" for="filter">Last modifier</label> <select id="modifier_select" class="form-control"> <option value="0">Greg Nickles</option> <option value="1">Richard Wang</option> <option value="2">Igor Shmartguy</option> <option value="3">Larry Hall</option> <option value="4">Unknown Soldier</option> </select> </div> <div id="recipient_search" class="form-group" style="display: none;"> <label id="recipient_label_attribute" for="filter">Notified recipients</label> <select id="recipient_select" class="form-control"> <option value="0">Greg Nickles</option> <option value="1">Richard Wang</option> <option value="2">Igor Shmartguy</option> <option value="3">Larry Hall</option> <option value="4">Unknown Soldier</option> </select> </div> <div id="more_search" class="form-group" style="display: none;"> <label for="contain">Contains the words</label> <input id="free_form" class="form-control" type="text" /> </div> <button type="submit" id="search" class="btn btn-primary"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button> </form> </div> </div> <!-- <button type="button" class="btn btn-primary"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button> --> </div> </div> </div> </div> </div> </div> </div>
body { padding-top: 50px; } .dropdown.dropdown-lg .dropdown-menu { margin-top: -1px; padding: 6px 20px; } .input-group-btn .btn-group { display: flex !important; } .btn-group .btn { border-radius: 0; margin-left: -1px; } .btn-group .btn:last-child { border-top-right-radius: 4px; border-bottom-right-radius: 4px; } .btn-group .form-horizontal .btn[type="submit"] { border-top-left-radius: 4px; border-bottom-left-radius: 4px; } .form-horizontal .form-group { margin-left: 0; margin-right: 0; } .form-group .form-control:last-child { border-top-left-radius: 4px; border-bottom-left-radius: 4px; } @media screen and (min-width: 768px) { #adv-search { width: 500px; margin: 0 auto; } .dropdown.dropdown-lg { position: static !important; } .dropdown.dropdown-lg .dropdown-menu { min-width: 500px; } }
// alert("WTF"); jQuery(function($){ // on document.ready var chosen_value; var search_attribute; $( "#event_attribute" ).change(function () { // alert("Chose " + $( "#event_attribute" ).val()); chosen_value = $("#event_attribute" ).val(); if (chosen_value == 0 ) { $("#system_service_search").show(); $("#site_search").hide(); $("#author_search").hide(); $("#modifier_search").hide(); $("#recipient_search").hide(); $("#more_search").hide(); search_attribute = "system_service"; } if (chosen_value == 1 ) { $("#system_service_search").hide(); $("#site_search").show(); $("#author_search").hide(); $("#modifier_search").hide(); $("#recipient_search").hide(); $("#more_search").hide(); search_attribute = "site"; } if (chosen_value == 2 ) { $("#system_service_search").hide(); $("#site_search").hide(); $("#author_search").show(); $("#modifier_search").hide(); $("#recipient_search").hide(); $("#more_search").hide(); search_attribute = "author"; } if (chosen_value == 3 ) { $("#system_service_search").hide(); $("#site_search").hide(); $("#author_search").hide(); $("#modifier_search").show(); $("#recipient_search").hide(); $("#more_search").hide(); search_attribute = "modifier"; } if (chosen_value == 4 ) { $("#system_service_search").hide(); $("#site_search").hide(); $("#author_search").hide(); $("#modifier_search").hide(); $("#recipient_search").show(); $("#more_search").hide(); search_attribute = "recipient"; } if (chosen_value == 5 ) { $("#system_service_search").hide(); $("#site_search").hide(); $("#author_search").hide(); $("#modifier_search").hide(); $("#recipient_search").hide(); $("#more_search").show(); search_attribute = "more"; } }); $("#search_form").submit(function () { var search_select_value = $("#" + search_attribute + "_select").val(); var search_select_text = $("#" + search_attribute + "_select option:selected" ).text(); // Special free form case if (chosen_value == 5 ) { search_select_text = $("#free_form").val(); search_attribute = "more information"; } alert("Search for " + search_attribute + " '" + search_select_text + "' between +/- <X> weeks" + " for event types <event_type(s)>"); return false; }); });

Related: See More


Questions / Comments: