0

我有一个多个选择框,其中包含对应国家/地区的城市,使用户可以选择多个城市。在填表过程中,用户必须先选择国家,然后在多选框中相应地更改城市。下面是我的国家选择框和城市多个 SB。

<select name="country" id="country" onchange="ajax_change(this.value)">
    <option value="">--Select Country--</option>
    <? echo $countryList;?>
</select>

这是多个选择框

<select multiple="multiple" name="cities[]" id="cities[]" style="height:150px; width:300px;">
    <option value="">-- Select City --</option> 
</select>

这是成功返回城市列表的 ajax 代码。

<script type="text/javascript">
    function ajax_change(val)
    {

        jQuery.post(
            '<?=WEB_ROOT?>index.php?rt=admin/airport/ajax',
            {
                val:val,
                type:'get_cities'
            },
            function(data){
                $('#cities[]').val(data);
            }
        );
    }
</script>

$('#cities[]').val(data)不工作。你能请任何人帮助我吗?

4

2 回答 2

2

您想使用$.each函数循环返回数据(我假设它是 JSON),然后将新创建的项目附加到您的列表中。

试试这个:

HTML

<select id='select' />​

Javascript

var data = {
    'name1':'value1',
    'name2':'value2'
};

$.each(data, function(key, value) {
    $('#select').append($("<option/>").text(key).val(value));
});

jsfiddle中的上述内容:jsfiddle

您还想从 ID 中删除方括号。

于 2012-05-14T17:36:21.703 回答
1

只需使用一个类并从 id 标签中删除 []

<select multiple="multiple" name="cities[]" class="cities" style="height:150px; width:300px;">
    <option value="">-- Select City --</option>
</select>

<script type="text/javascript">
    function ajax_change(val)
    {
       //alert(val);

       jQuery.post('<?=WEB_ROOT?>index.php?rt=admin/airport/ajax',
           {val:val,type:'get_cities'},
           function(data){
               $('.cities').val(data);
           }
       );
    }
</script>
于 2012-05-14T17:21:49.710 回答