利用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.
利用jquery.chained.remote实现多级级联的更多相关文章
- jQuery Validate 表单验证插件----利用jquery.metadata.js将校验规则直接写在class属性里面并定义错误信息的提示
一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW 访问密码 f224 二. 添加一个另外一个插件jquery.metadata.js 并把校验规则写在控件里面 ...
- JQuery Easyui/TopJUI 创建多级联动下拉框(纯HTML实现!!!)
JQuery Easyui/TopJUI 创建多级联动下拉框(纯HTML实现!!!) 效果展示: 代码如下: <form data-toggle="topjui-form"& ...
- Form表单利用Jquery Validate验证以及ajax提交
#表单利用Jquery验证验证以及ajax提交 概述>详细讲解表单利用Jquery >验证验证以及ajax提交的过程,以及Validate的自定义提示语,非空判断,输入字段的远程ajax验 ...
- Banner中利用Jquery隐藏显示下方DIV块
实现方式1: <!DOCTYPE html><html><head> <meta charset="UTF-8"> &l ...
- 基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式
在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括 ...
- 基于MVC4+EasyUI的Web开发框架经验总结(1)-利用jQuery Tags Input 插件显示选择记录
最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...
- 利用Jquery的load函数实现页面的动态加载
利用Jquery的load函数实现页面的动态加载 js的强大功能相信大家都知晓,今天通过jquery的库函数load可以更加方便的实现页面的动态刷新,经过几天的研究与探索,终于有所成效!吾心甚蔚! ...
- 利用Jquery使用HTML5的FormData属性实现对文件的上传
1.利用Jquery使用HTML5的FormData属性实现对文件的上传 在HTML5以前我们如果需要实现文件上传服务器等功能的时候,有时候我们不得不依赖于FLASH去实现,而在HTML5到来之后,我 ...
- 利用jquery给指定的table动态添加一行、删除一行
转自:http://www.cnblogs.com/linjiqin/p/3148181.html $("#mytable tr").find("td:nth-child ...
随机推荐
- Android 工程师
转发:https://zhuanlan.zhihu.com/p/30429725 这句话我真的憋了好久.Android 工程师只要关注我,我就能让你达到大师级水平,不是面试时的吹牛逼水平,不是自我欺骗 ...
- GPIO复位功能说明
根据STM32L0x3参考手册RM0367,每个General-Purpose IO口,有以下寄存器: 1.4个32位的控制寄存器,分别为GPIOx_MODER,GPIOx_OTYPER,GPIOx_ ...
- iOS开发针对对Masonry下的FPS优化讨论
今天博客的内容就系统的讨论一下Masonry对FSP的影响,以及如何更好的使用Masonry.如果你对iOS开发足够熟悉的话,那么对Masonry框架应该不陌生.简单的说,Masonry的诞生让Aut ...
- this和static关键字
this和static关键字 一.关键字this this表示对象自身的引用 this的作用 1.用来区别当前类对象的成员与参数成员 2.用来调用其它构造方法 构造方法: 1.每个类默认情况都有一个默 ...
- Owin中间件动手玩
摘要:本文目的是了解Owin基本原理.讲述如何从控制台创建一个自宿主的OwinHost,然后再编写一两个中间件 准备工作 首先通过VisualStudio创建一个控制台应用 然后添加Owin的Nuge ...
- 深度学习之tensorflow (一)
一.TensorFlow简介 1.TensorFlow定义: tensor :张量,N维数组 Flow : 流,基于数据流图的计算 TensorFlow : 张量从图像的一端流动到另一端的计算 ...
- Makefile例子引入
Makefile规则 target ... :prerequisites... command target就是一个目标文件,可以是object file,也可以是可以执行文件,也可以是一个标签 pr ...
- typescript入门基础
1.typescript介绍 微软开发的一门编程语言,javascript的一个超集,遵循最新的ES6脚本语言规范(2015年发布),它扩展了Javascript的语法,任何已经写好的javascri ...
- Golang 任务队列策略 -- 读《JOB QUEUES IN GO》
Golang 在异步处理上有着上佳的表现.因为 goroutines 和 channels 是非常容易使用且有效的异步处理手段.下面我们一起来看一看 Golang 的简易任务队列 一种"非任 ...
- 使用Microsoft.AspNetCore.TestHost进行完整的功能测试
简介 Microsoft.AspNetCore.TestHost是可以用于Asp.net Core 的功能测试工具.很多时候我们一个接口写好了,单元测试什么的也都ok了,需要完整调试一下,检查下单元测 ...