Вот демо из учебника, за которым я следовал, за исключением того, что оно отсутствует в codeigniter, поэтому оно не заполняется при перезагрузке.
Я использую codeigniter, который позволяет мне повторно заполнить значение формы, если есть ошибка, поэтому, если есть ошибка при отправке, форма перезагрузится и останется с тем же значением (если это значение по умолчанию "0" .city не появится) ....
//.country & .city are slection box, once .country is select it will display
// .city and the country cities.
jQuery(document).ready(function(){
jQuery(".country").bind("change click", function(){
var country = jQuery(".country").val();
jQuery.ajax({
type: "POST",
url: "/get/locations",
data: ({country : country }),
beforeSend: function(){ jQuery("").show(); }, //this is to load an effect (I have empty it for now)
complete: function(){ jQuery("").hide(); },
success: function(response){
jQuery(".city").html(response);
if(country=== '0' ){
//The default (<option value="0">Select</option>
jQuery(".city").hide();
} else{
jQuery(".city").show();
}
}
});
}).trigger("change");
В последнем коде «trigger (« change »)» мы проверяем, что при перезагрузке страницы проверяется jquery, поэтому, если CI заполнит пример значения 2 (страна X), он покажет города страны X без чтобы изменить или нажмите.
Все работает отлично, за исключением того, что codeigniter не может снова заполнить выбор .city.
Поскольку значения получаются после того, как документ готов и codeigniter, вероятно, просто видит пустые значения в поле выбора .city.
Есть ли способ, которым я мог бы заполнить .city с помощью jquery или получить codeigniter, чтобы заполнить его в случае ошибки?
Пример того, как HTML может выглядеть:
<select class="country">
<option value="0">Select</option>
<option value="1"> USA </option>
</select>
<select class="city" style="display:none;" >
</select>