chained dropdown

by oterox

HTML

<select id="C_Country" name="C_Country" aria-required="true" class="required">
    <option value=" " selected="">-- Please Select --</option>
    <option value="AF">Afghanistan</option>
    <option value="AX">Aland Islands</option>
    <option value="USA">United States</option>
    <option value="DZ">Algeria</option>
    <option value="CA">Canada</option>
    <option value="AD">Andorra</option>
</select>


<p><label for="C_State_Prov">State or Province <span title="required">*</span></label></p>
<select id="C_State_Prov" name="C_State_Prov" aria-required="true" class="required">
    <option value="" selected="">-- Please Select --</option>
    <optgroup label="United States">
    <option value="AK">Alaska</option>
    <option value="AL">Alabama</option>
    <option value="AR">Arkansas</option>
    <option value="AZ">Arizona</option>
    <option value="CA">California</option>
    </optgroup>
    <optgroup label="Canada">
    <option value="AB">Alberta</option>
    <option value="BC">British Columbia</option>
    <option value="MB">Manitoba</option>
    </optgroup>
    <optgroup label="Andorra">
    <option value="AB">Paracuellos</option>
    <option value="BC">Madrid</option>
    <option value="MB">Alcobendas</option>
    </optgroup>    
</select>

JavaScript

var state_province = $('#C_State_Prov option, #C_State_Prov optgroup'); 
state_province.hide(); 


 $('#C_Country').change(function(){
     state_province.hide(); 
     $("#C_State_Prov optgroup[label='"+$(this).find(':selected').html() + "']" )
     .children()
     .andSelf()
     .show();  
 });