Jeesite下拉框的二级联动

3 篇文章 0 订阅

话不多说 首先上图片
这里写图片描述
JSP 页面代码 截图

第一个下拉框JSP代码

        <div class="control-group">
            <label class="control-label">离职类型:</label>
            <div class="controls">
                <form:select id="type" name="type" path="type" class="input-xlarge" onchange="findtemplate(this.options[this.options.selectedIndex].value);"
                    style="width:180px;">
<%--                    <form:option value="" label="" /> --%>
                    <form:options items="${fns:getDictList('upl_type')}"
                        itemLabel="label" itemValue="value" htmlEscape="false" />
                </form:select>
            </div>
        </div>

第二个下拉框JSP代码

        <div class="control-group">
            <label class="control-label">选择模板:</label>
            <div class="controls">
                <form:select id="template" name="template" path="type" class="input-xlarge"
                    style="width:180px;">
<%--                    <form:option value="" label="" /> --%>
                    <form:options id="wordTemplate" items="${fns:getDictList('upc_word')}"
                        itemLabel="label" itemValue="value" htmlEscape="false" />
                </form:select>
                <%--                <a href="${ctx}/sys/userdetail/upcform">导出模板</a> --%>
            </div>
        </div>

精髓部分为 第一个下拉框

onchange="findtemplate(this.options[this.options.selectedIndex].value);"

说明:findtemplate()为函数名称
this.options[this.options.selectedIndex].value 这句话能获取到第一个下拉框选择的值

JS代码部分:

function findtemplate(v) {
    $.ajax({
        type : "post",
        async : false,
        url : "getPostTemplateJson",
        data : {
            'type' : v
        },
        dataType : "json",
        success : function(msg) {
            $("#template").empty();
            //$("#template").select2();
            if (msg.length > 0) {
                for (var i = 0; i < msg.length; i++) {
                        var partId = msg[i].value;
                        var partName = msg[i].label;
                        var $option = $("<option>").attr({
                            "value" : partId
                        }).text(partName);
                        $("#template").append($option);
                }
                //$("#template option:first").prop("selected", 'selected');
                $("#template").change();

            }
        },
        error : function(json) {
            $.jBox.alert("网络异常!");
        }
    });
}

JS代码说明:
通过AJAX请求 后台数据 然后采取循环拼接的办法 构造下拉框的。 option。。
必要说明:$(“#下拉框”).empty(),为 jquey写法,必写。

$(“#下拉框”).change(); 这个change()函数 一定要写,否则有一个小bug。
这个bug是什么就不明说了,复制代码的兄弟 可以去掉试试效果。

这是个很细节的操作哦 。。。。。。。。。。。。。。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
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(); } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值