利用jquery.chained.remote实现多级级联

多级级联一直是前端比较烦人的一个功能,本次用jquery的插件,chained.remote实现多级级联。

应用场景:至少有二个下拉框,下拉框的个数不定。

应用步骤:

1.引入js文件,当然这个插件需要自己去下载。

<!-- 多级联动 -->
<script type="text/javascript" src="./static/js/jquery.chained.remote.min.js"></script>

2.两个下拉框

<!--第一个下拉框--><div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"
                                style="padding-bottom: 2px">
                                <div class="input-group input-group-sm">
                                    <span class="input-group-addon">材料/产品</span> <select
                                        class="form-control" name="categoryType" id="categoryType"
                                        onchange="setParm(this.name, this.value)">
                                        <option value="">所有</option>
                                        <option value="0"><c:if test=‘${pm.categoryType==1}‘>selected</c:if>材料
                                        </option>
                                        <option value="1"><c:if test=‘${pm.categoryType==2}‘>selected</c:if>产品
                                        </option>
                                    </select>
                                </div>
                            </div><!--第二个下拉框-->
                            <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"
                                style="padding-bottom: 2px">
                                <div class="input-group input-group-sm">
                                    <span class="input-group-addon">父级类别</span> <SELECT
                                        class="form-control" name="parentCategoryId" id="parentCategoryId"
                                        onchange="setParm(this.name, this.value)">
                                        <OPTION value="">请选择</OPTION>
                                    </SELECT>
                                </div>
                            </div>

我想实现的是选择第一个下拉框的材料或者产品的时候,会导致第二个下拉框显示不同的内容。注意第一个下拉框的id是categoryType,第二个下拉框的id是parentCategoryId.

3.写入如下js代码

$(function() {
        //二级联动
        $("#parentCategoryId").remoteChained("#categoryType", "parentCategoryListByCategoryType");

    });
parentCategoryId和categoryType分别对应第二个和第一个下拉框的id,parentCategoryListByCategoryType是ajax获取数据的url。4.接下来就是编写parentCategoryListByCategoryType的代码。
@ResponseBody
    @RequestMapping("parentCategoryListByCategoryType")
    public String parentCategoryListByCategoryType(int categoryType) {
        JSONObject jsonObject = categoryService
                .getRootCategoryListByCategoryType(categoryType);
        return jsonObject.toString();
    }


public JSONObject getRootCategoryListByCategoryType(int categoryType){
        try {
            List<TCategory>rootCategoryList=baseDao.findTListByParam("TCategoryMapper.selectRootCategoryByCategoryType", categoryType);
            JSONObject jsonObject=new JSONObject();
            for(TCategory category:rootCategoryList){
                jsonObject.put(category.getCategoryId().toString(), category.getCategoryName());
            }
            return jsonObject;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;

    }
    <select id="selectRootCategoryByCategoryType" resultMap="BaseResultMap"
        parameterType="java.lang.Integer">
        select
        <include refid="Base_Column_List" />
        from t_category
        where is_del=0 and is_root=1
        <if test="categoryId!=0">
            and
            category_type=#{categoryId,jdbcType=INTEGER}
        </if>
        order by sort_num
    </select>

可以看到我们取得的数据是json格式的。这样便完成了二级级联的效果,多级级联只要在这个基础上按同样的方法做就可以了。

PS:应用的框架是ssm.

 
 
时间: 2024-12-14 10:34:18

利用jquery.chained.remote实现多级级联的相关文章

jquery.chained与jquery.chained.remote使用以及区别

---恢复内容开始--- jquery.chained与jquery.chained.remote总体来说一个是静态的一个是动态的, jquery.chained是静态的,他可以显示和隐藏页面上select的选项,他是根据类来显示select的数据项 例如: <select id="mark" name="mark">  <option value="">--</option>  <option valu

jQuery表单验证插件----利用jquery.metadata.js将校验规则写到控件中

一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.metadata.js 并把校验规则写在控件里面. 三.需要改写触发校验的方式. $("#commentForm").validate({meta: "validate"}); 四.详细代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

基于MVC+EasyUI的Web开发框架经验总结(1)-利用jQuery Tags Input 插件显示选择记录

最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重构完善过程中,很多细节花费不少时间进行研究和提炼,一步步走过来,也积累了不少经验,本系列将主要介绍我在进一步完善我的Web框架基础上积累的经验进行分享,本随笔主要介绍利用jQuery Tags Input 插件显示选择记录. 我在利用jQuery Tags Input 插件之前,一直想找一个合适的J

如何利用jquery.1.9版本判断浏览器的版本类型

如何利用jquery.1.9版本判断浏览器的版本类型:在jquery.1.9以前的版本,可以使用$.browser很轻松的判断浏览器的类型和版本,但是在1.9中和以后的版本中,$.browser已经被删除,下面就介绍一下如何实现此功能,希望能够给需要的朋友带来帮助.一.自定义代码: $.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase()); $.browser.webkit = /webkit/.test(navi

利用jQuery如何删除一个节点

利用jQuery如何删除一个节点:添加或者删除节点是常用的操作,本章节介绍一下如何删除一个节点,当然在jQuery中删除节点的函数不止一个,不过这里就介绍一下如何使用remove()函数实现此功能,代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.soft

利用jquery的淡入淡出函数(fadeIn和fadeOut)--实现轮播

首先说下,我在网上找的例子全是用的UL 实现,其实大可不必,只要是能包含img标签的HTML标签都可以做轮播效果.利用jquery的淡入淡出函数(fadeIn和fadeOut).废话也不多说,边上代码边讲解.最后附上demo效果地址. <!--整体容器-->    <div class="imgbox">        <!--图片列表,除第一张显示外,其余隐藏-->        <ul>            <li style

如何利用jQuery进行简单表单验证

如何利用jQuery进行简单表单验证:利用jQuery可以进行表单验证,当然有比较复杂的表单验证,这里就不介绍了,下面就简单介绍一下如何使用jQuery进行简单的表单验证,然后大家可以通过改造进行基本的表达验证了.先看一段代码实例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http

利用jquery移除和添加图片

利用jquery移除和添加图片 1.样式 <style type="text/css">     .changeImage{          background:url(images/right.png) no-repeat center;     } </style> 2.JS (1)在改变标签的样式,需要移除之前添加的样式 $("#tab tr").find("td").removeClass("chan

利用jQuery和CSS实现环形进度条

html代码 1 <div class="circle" style="left:0"> 2 <div class="pie_left"><div class="left"></div></div> 3 <div class="pie_right"><div class="right"></div&