# 城市选择
FastAdmin中集成了强大的`city-picker`城市选择插件,可以很方便的选择省份和城市。
我们只需要简单的为input元素添加一个`data-toggle="city-picker"`属性即可自动渲染相应的城市选择组件 。
我们还可以通过添加以下属性来扩展城市选择组件的功能
| 属性 | 描述 | 示例 |
| --- | --- | --- |
| data-level | 选择城市的级别,支持province/city/district,默认为district | data-level="city" |
| data-simple | 使用简单的地址,比如使用内蒙古替代内蒙古自治区,默认为false | data-simple="true" |
| data-responsive | 是否为自适应,默认为false | data-responsive="true" |
| placeholder | 默认提示的文字 | placeholder="请选择省/市" |
`city-picker`组件默认选择后渲染的是中文城市信息,我们可以通过在JS中监听`city-picker`更新后的事件来获取省份城市地区对应的code值。代码如下:
~~~
$("#city-picker").on("cp:updated", function() {
var citypicker = $(this).data("citypicker");
var code = citypicker.getCode("district") || citypicker.getCode("city") || citypicker.getCode("province");
$("#code").val(code);
});
~~~
如果我们数据库中存放的是地区的code值,在显示时我们则需要把对应的code通过读取数据库转换成我们的地区中文,然后再设定input的value值即可。
```
<!--由于在初始化中修改了默认值,所以这里需要修改-jsonSpace/jsonValue/jsonName的值-->
<div class="form-inline" data-toggle="cxselect" data-url="/assets/libs/fastadmin-cxselect/js/cityData.min.json" data-selects="province,city,area" data-json-space="" data-json-name="n" data-json-value="">
<select class="province form-control" data-first-title="选择省">
<option value="">请选择</option>
<option value="浙江省" selected="">浙江省</option>
</select>
<select class="city form-control" data-first-title="选择市">
<option value="">请选择</option>
<option value="杭州市" selected="">杭州市</option>
</select>
<select class="area form-control" data-first-title="选择地区">
<option value="">请选择</option>
<option value="西湖区" selected="">西湖区</option>
</select>
</div>
```
**类别联动**(Ajax读取数据)
```
<div class="form-inline" data-toggle="cxselect" data-selects="first,second">
<select class="first form-control" name="first" data-url="ajax/category?type=page&pid=5">
<option value="6" selected="">网站建站</option>
</select>
<select class="second form-control" name="second" data-url="ajax/category" data-query-name="pid">
<option value="9" selected="">移动端</option>
</select>
</div>
```