以下是我所遵循的教程中的demo,但不在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选择框中看到空白值。
有没有办法可以用jquery重新填充.city,或者如果出现错误,可以让codeigniter重新填充它?
关于html外观如何的示例:
<select class="country">
<option value="0">Select</option>
<option value="1"> USA </option>
</select>
<select class="city" style="display:none;" >
</select>
答案 0 :(得分:0)
如果正确填充了选择(听起来像是这样),您可以使用$('.country').change();
触发更改功能。这将重新填充.city
选择下拉列表。但是,不会选择之前选择的城市 - 它只会填充选项。