在项目中,需要使用三级联动,由于三级是分开的,是三个请求,所以只能获取到选中的选项值,然后分别进行请求。
在项目中我引入了vue,使用axios进行请求。
效果如下:
过程:
使用$event
来进行获取下拉选项的value值。
<div class="layui-form-item">
<label class="layui-form-label">学校选择:</label>
<select v-model="Sch" @change="change($event)">
<option v-for="item in schools" :value="item.schoolName">{{item.schoolName}}</option>
</select>
</div>
<div class="layui-form-item">
<label class="layui-form-label">专业选择:</label>
一级:
<select v-model="One" @change="change1($event)">
<option v-for="item in specialOnes" :value="item.specialOneId">{{item.specialOneName}}</option>
</select>
二级:
<select v-model="Two" @change="change2($event)">
<option v-for="item in specialTwos" :value="item.specialTwoId">{{item.specialTwoName}}</option>
</select>
三级:
<select v-model="Three" @change="change3($event)">
<option v-for="item in specialThrees" :value="item.specialName">{{item.specialName}}</option>
</select>
</div>
// 获得学校id
change(event) {
this.Sch = event.target.value; //获取option对应的value值
},
// 根据选中的一级的id获取所属二级专业
change1(event) {
this.One = event.target.value; //获取option对应的value值
//axios部分
},
// 根据选中的二级的id获取所属三级专业
change2(event) {
this.Two = event.target.value; //获取option对应的value值
//axios部分
},
// 获得三级id
change3(event) {
this.Three = event.target.value; //获取option对应的value值
},
出现的问题:
在切换一级专业后,后面的二三级专业下拉选框里依旧存在选项,所以在一级专业的方法中,将二三级的数据进行一下清空即可。