重新填充Jquery多选框?

时间:2012-03-15 14:28:46

标签: javascript jquery codeigniter

以下是我所遵循的教程中的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>

1 个答案:

答案 0 :(得分:0)

如果正确填充了选择(听起来像是这样),您可以使用$('.country').change();触发更改功能。这将重新填充.city选择下拉列表。但是,不会选择之前选择的城市 - 它只会填充选项。