];
2018.3.13 更新
后来新版本的iview select value的值不支持定义对象形式,所以会报错:
@change事件改为了@on-change 事件
于是换一个实现方法:
<FormItem label="国家" prop="country">
<Col span="7">
<Select v-model="formValidate.country" @on-change="selectCountry" placeholder="请选择国家">
<Option v-for="(item,index) in area" :value="item.country" :key="index">{{item.country}}</Option>
</Select>
</Col>
<Col span="17">
</Col>
</Row>
</FormItem>
<FormItem label="城市" prop="city">
<Col span="7">
<Select v-model="formValidate.city" placeholder="请选择城市">
<Option v-for="(item,index) in city" :value="item" :key="index">{{item}}</Option>
</Select>
</Col>
<Col span="17">
</Col>
</Row>
</FormItem>
data(){
return {
formValidate: {
country:'',
city:'',
area:[
"country":"美国",
"city":[
"纽约",
"洛杉矶",
"旧金山",
"西雅图",
"波士顿",
"休斯顿",
"圣地亚哥",
"芝加哥",
"其它",
"country":"加拿大",
"city":[
"温哥华",
"多伦多",
"蒙特利尔",
"country":"澳大利亚",
"city":[
"悉尼",
"墨尔本",
"country":"新加坡",
"city":[
"新加坡"
"country":"中国",
"city":[
"北京市",
},*/
city:[]
methods: {
selectCountry(value){
const _this=this;
this.area.forEach(function (item,index) {
if(item.country==value){
_this.city=item.city;
_this.formValidate.city=_this.city[0];
新定义一个数组存放被筛选出来的city列表,选择城市的时候遍历这个列表,通过选择国家改变该列表。