Search and filter checkboxes options

Search and filter checkboxes options with jQuery

by Akram kamal

HTML

<h2>Demo:</h2>

<div id="options">
<div class="option-64">
	<input type="checkbox" id="64" value="64"><label class="option" for="64">Fenton</label>
</div>
<div class="option-71">
	<input type="checkbox" id="71" value="71"><label class="option" for="71">Haywood</label>
</div>
<div class="option-101">
	<input type="checkbox" id="101" value="101"><label class="option" for="101">Crofton</label>
</div>
<div class="option-40">
	<input type="checkbox" id="40" value="40"><label class="option" for="40">Vic</label>
</div>
<div class="option-73">
	<input type="checkbox" id="73" value="73"><label class="option" for="73">Alex</label>
</div>
<div class="option-128">
	<input type="checkbox" id="128" value="128"><label class="option" for="128">Darien</label>
</div>
<div class="option-1">
	<input type="checkbox" id="1" value="1"><label class="option" for="1">Vern</label>
</div>
<div class="option-97">
	<input type="checkbox" id="97" value="97"><label class="option" for="97">Tommy</label>
</div>
<div class="option-72">
	<input type="checkbox" id="72" value="72"><label class="option" for="72">Benedict</label>
</div>
<div class="option-33">
	<input type="checkbox" id="33" value="33"><label class="option" for="33">Buck</label>
</div>
<div class="option-44">
	<input type="checkbox" id="44" value="44"><label class="option" for="44">Earle</label>
</div>
<div class="option-140">
	<input type="checkbox" id="140" value="140"><label class="option" for="140">Giles</label>
</div>
    </div>

JavaScript

$(document).ready(function(){
	      // Options search field
	      $('#options').before(
	          '<input id="search" style="display: inline; width:180px;" type="text" />'
	          +'<span><a href="" onclick="return false;" id="search-clear">X</a></span>'
	          );
	      $('#search').keyup(function(){
	         var valThis = $(this).val().toLowerCase();
	          $('input[type=checkbox]').each(function(){
	              var text = $("label[for='"+$(this).attr('id')+"']").text().toLowerCase();
	              (text.indexOf(valThis) == 0) ? $(this).parent().show() : $(this).parent().hide();
	         });
	      });
	      // Search clear button
	      $("#search-clear").click(function(){
	        $("#search").val("");
	        $('input[type=checkbox]').each(function(){
	        	$(this).parent().show();
	        });
	      });
			});