select下拉框二级联动

  <div class="form-group">
     <label class="col-sm-3 control-label">平台:</label>
     <div class="col-sm-4">
     <select name="platform" class="form-control"   onchange="func1(this)"   id="platform">
         <option value="">请选择平台</option>
          <c:forEach items="${platformList}" var="platform">
             <option value="${platform.name}">${platform.name}</option>
           </c:forEach>
      </select>
     </div>
  </div>                             


<div class="form-group">
   <label class="col-sm-3 control-label">排量:</label>
   <div class="col-sm-4">
       <select name="type" id="type" class="form-control">
           <option value="">请选择排量</option>
       </select>
    </div>
 </div>

 

function func1(thiss) {
    var select2 = document.getElementById("type");
   // var select1 = document.getElementById("platform").value;
    var select1 =thiss.value
    select2.length = 0; //每次都先清空一下市级菜单
    if(select1 !=0) {
        $.ajax({
            //几个参数需要注意一下
            type: "POST",//方法类型
            dataType: 'json',
            url: webPath+"/system/getDict",//url
            data: {"type":select1},//这个是form表单中的id   jQuery的serialize()方法通过序列化表单值
            success: function (result) {
                for(var i in result) {
                    select2.add(new Option(result[i].name,result[i].name), null);
                }
            },
        });

    }else if (select1 == 0){
        select2.length = 0;
        select2.add(new Option("请选择型号", ""), null);
    }
}

 

Vue3中的下拉框二级联动通常涉及到数据绑定和事件监听。当你在一个下拉框选择了第一个选项后,会触发一个方法,这个方法会更新数据,然后根据新的数据动态地填充第二个下拉框的选项。这通常通过以下几个步骤实现: 1. **创建组件**: 创建两个`<select>`元素,分别用于一级和二级选择。给每个下拉框设置一个`v-model`属性来双向绑定数据。 ```html <select v-model="firstLevelOption" @change="loadSecondLevelOptions"> <option value="">请选择</option> <!-- 一级选项 --> </select> <select v-model="secondLevelOption"> <option value="">请选择</option> <!-- 二级选项,初始为空 --> </select> ``` 2. **处理数据变化**: 当`firstLevelOption`发生变化时,调用`loadSecondLevelOptions`方法,从服务器或本地存储获取相应的二级选项,并更新`secondLevelOption`的数据。 ```javascript export default { data() { return { firstLevelOption: '', secondLevelOption: [], }; }, methods: { loadSecondLevelOptions() { // 根据firstLevelOption值请求API获取二级选项 this.$axios.get('/api/second-level', { params: { id: this.firstLevelOption } }) .then(response => (this.secondLevelOption = response.data)) .catch(error => console.error('Error fetching second level options:', error)); }, }, }; ``` 3. **初始化数据**: 在组件的生命周期钩子里(如`mounted()`),你可以预先加载一些默认的二级选项,或者在数据初始化时就根据一级选项提供对应的选项。 ```javascript mounted() { this.loadSecondLevelOptions(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值