jQuery+jsp下拉框联动获取本地数据的方法(附源码)

前端之家收集整理的这篇文章主要介绍了jQuery+jsp下拉框联动获取本地数据的方法(附源码)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了jQuery+jsp下拉框联动获取本地数据的方法分享给大家供大家参考,具体如下:

JQuery下拉框联动很好的体现了Ajax的按需取数据的要求,减小数据的交互量。(点击此处代码)

下面的实例使用Json将服务器端的类或者对象转换为JSON格式,主要运用了6个jar包

下面贴上实验图,并详细讲解一下主要代码

显示页面index.jsp

<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> JQuery实例-级联下拉框<a href="/tag/xiaoguo/" target="_blank" class="keywords">效果</a> <Meta http-equiv= "Content-Type" content="text/html";charset=UTF-8">
数据装载中

数据装载中......

图片装载中

汽车<a href=图片" class="carimg"/>

修饰文件chainselect.css

在这里,要

注意属性 display: none; 与 visibility: hidden;的区别

display: none;

使用该属性后,HTML元素(对象)的宽度、高度等各种属性值都将“丢失”;

visibility: hidden;

使用该属性后,HTML元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置仍然存在,也即是说它仍具有高度、宽度等属性值。

JQUERY处理文件chainselect.js

注册事件 carnameSelect.change(function(){ //1.需要获得当前下拉框的值 var carnameValue = $(this).val(); //1.1只要第一个下拉框内容有变化,第三个下拉框都要先隐藏起来 wheeltypeSelect.parent().hide(); //1.2将汽车图片隐藏起来 carimg.hide().attr("src",""); //2.如果值不为空,则将下拉框的值传送给服务器 if (carnameValue != "") { if (!carnameSelect.data(carnameValue)) { //对应服务器端程序 CarJsonServlet的属性,并将该Servlet中的数据转换为JSON格式 $.post("CarJsonServlet",{keyword: carnameValue,type: "top"},function(data){ //2.1接收服务器返回的汽车类型,data为数组格式 if (data.length != 0) { //2.2解析汽车类型的数据,填充到汽车类型的下拉框中 cartypeSelect.html(""); $("

问题???:$("

服务器端CarJsonServlet

解决中文乱码 response.setHeader("Cache-Control","no-cache"); response.setContentType("text/json;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); //得到type,keyword的值 String type = request.getParameter("type"); String keyword = request.getParameter("keyword"); JSONArray jsonArrayResult = new JSONArray(); if ("top".equals(type)) { if ("BMW".equals(keyword)) { jsonArrayResult.add("316ti"); jsonArrayResult.add("6ercupe"); } else if ("Audi".equals(keyword)) { jsonArrayResult.add("tt"); } else if ("VW".equals(keyword)) { jsonArrayResult.add("Golf4"); } } else if ("sub".equals(type)) { if ("tt".equals(keyword)) { jsonArrayResult.add("rha"); jsonArrayResult.add("rhb"); jsonArrayResult.add("rhc"); } else if ("316ti".equals(keyword)) { jsonArrayResult.add("rha"); jsonArrayResult.add("rhb"); } else if ("6ercupe".equals(keyword)) { jsonArrayResult.add("rha"); jsonArrayResult.add("rhb"); jsonArrayResult.add("rhc"); } else if ("Golf4".equals(keyword)) { jsonArrayResult.add("rha"); jsonArrayResult.add("rhb"); } } PrintWriter out = response.getWriter(); out.write(jsonArrayResult.toString()); out.flush(); out.close(); } }

配置文件web.xml

CarJsonServlet CarJsonServlet CarJsonServlet /CarJsonServlet index.jsp

本节学到的JQuery及其他开发知识:

1.img标签的alt属性要写上,在图片尚未装载进来或图片不存在时,这个属性文字信息会显示出来 2.select表示下拉框,下拉框的每一项都是一个option,option开始结尾标签中的内容显示页面上,value属性的值则是用于在JQuery中用val方法获取并发送给服务器的。定义了selected的属性值为selected时,表示当前option被选中 3.div元素居中显示方法:给div设定宽度,然后margin-left和margin-right的值都为auto。简写方法是margin: 0 auto; 4.html的p标签表示一个段落的内容,其中的内容会独占一行或多行,后面的内容会另起一行显示 5.为了让p中文字和图片居中,可以使用text-align属性属性值为center。p标签默认有margin-top和margin-bottom的值,需要的话可以通过css清除 6.visibility的属性值为hidden时,元素隐藏,但是和display为none不同的是,在页面中仍然占据一定空间,只是不显示 7.多个选择器如果有相同的属性值,可以放在一起定义,选择器之间用逗号分割 8.change方法对应标准Javascript中的onchange事件,可以处理下拉框内容变化的事件 9.parent方法可以获得一个节点的父节点 10.next方法可以获得一个节点的下一个兄弟节点,对应的prevIoUs方法可以获得一个节点的上一个兄弟节点 11.$.post方法可以和服务器端发起post的异步请求。第一个参数是请求的服务器端地址,第二个参数是发送给服务器端的数据,参数是Javascript的对象,采用名值对的方式表示,第三个参数是回调方法,第四个参数指示服务器端返回的数据类型,JQuery会根据这个参数帮我们进行转换。get方法只有第二个参数不同,其他几个参数用法相同 12.Javascript中的简单对象定义方式是{key1: value1,key2: value2} 13.JSON的数据格式其实就是Javascript中的一个对象或数据定义的文本格式内容,比如{key1: value1,key2: [1,2,3]}或[1,{key2: value2}] 14.可以直接$(“

希望本文所述对大家jQuery程序设计有所帮助。

猜你在找的jQuery相关文章