基于JQuery的Select下拉框下拉框联动(级联)

这段时间在指导学生完成实训项目,由一个用到了JQuery进行下拉框(select)联动(添加删除option)的操作,本来在上课中都是讲过的,但时间一长都忘光了,下面把这段简单的JS贴出来,给入门者一个DEMO吧,以后有学生不会写的时候他能到这找到参考。

代码要点:

1、使用JQuery给select标签添加option元素时,直接使用:

Js代码   收藏代码
  1. $("筛选符").append("显示文字")  

2、清空select中所有元素可以使用:

Js代码   收藏代码
  1. $(".child").html("")  

    或者是

Java代码   收藏代码
  1. $(".child").empty()  

3、获取select标签选择值时用:(直调用val()方法即可)

Java代码   收藏代码
  1. $(".parent").val()  

下面是示例JSP页面全文:

Js代码   收藏代码
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4.   
  5.   
  6. "Content-Type" content="text/html; charset=UTF-8">  
  7. "pragma" content="no-cache"/>  
  8. "cache-control" content="no-cache"/>  
  9. "expires" content="0"/>  
  10. 基于JQuery的下拉框级联操作  
  11. "text/javascript" src="js/jquery-1.4.4.min.js">  
  12. "text/javascript">  
  13. function changChild(tid){  
  14.     $.post("childSelect",{"tid":tid},function(json){  
  15.         $(".child").html("");//清空学生下拉框  
  16.         for(var i=0;i
  17.             //添加一个学生  
  18.             $(".child").append("+json[i].id+"'>"+json[i].name+"");  
  19.         }  
  20.     },'json');  
  21. }  
  22. $(function(){  
  23.     //初始化教师下拉框  
  24.     $.post("parentSelect",null,function(json){  
  25.         for(var i=0;i
  26.             //添加一个教师  
  27.             $(".parent").append("+json[i].id+"'>"+json[i].name+"");  
  28.         }  
  29.         changChild($(".parent").val());  
  30.     },'json');  
  31.     //注册教师下拉框事件  
  32.     $(".parent").change(function(){  
  33.         changChild($(this).val());  
  34.     });  
  35. });  
  36.   
  37.   
  38.   
  39. 使用JQuery进行下拉框的联动

      
  40.   

  41.     改变教师下拉框,发送AJAX请求,根据返回的JSON数据重新填充学生下拉框。  
  42.   

  43.   
  44. class="parent">  
  45. class="child">  
  46.   
  47.   

服务端是用Struts的一个Action,使用Json-lib将数据转化成json字符串:(见全文)

Java代码   收藏代码
  1. public class SelectChangeAction {  
  2.     private static List teachers = new ArrayList();  
  3.     private static List students = new ArrayList();  
  4.     private int tid;  
  5.     static{  
  6.         Teacher teacher = null;   
  7.         Student student = null;  
  8.         for(int i=0;i<10;i++){  
  9.             teacher = new Teacher();  
  10.             teacher.setId(i);  
  11.             teacher.setName("教师【"+i+"】");  
  12.             for(int j=0;j<10;j++){  
  13.                 student = new Student();  
  14.                 student.setId(j);  
  15.                 student.setName(teacher.getName()+"的学生【"+i+"|"+j+"】");  
  16.                 student.setTeacher(teacher);  
  17.                 students.add(student);  
  18.             }  
  19.             teachers.add(teacher);  
  20.         }  
  21.     }  
  22.       
  23.     /** 
  24.      * 输出教师信息 
  25.      * @return 
  26.      */  
  27.     public String parent(){  
  28.         String json = JSONArray.fromObject(teachers).toString();  
  29.         HttpServletResponse response = ServletActionContext.getResponse();  
  30.         response.setCharacterEncoding("UTF-8");  
  31.         try {  
  32.             response.getWriter().write(json);  
  33.         } catch (IOException e) {  
  34.             e.printStackTrace();  
  35.         }  
  36.         return null;  
  37.     }  
  38.     /** 
  39.      * 输出学生信息 
  40.      * @return 
  41.      */  
  42.     public String child(){  
  43.         List list = new ArrayList();  
  44.         for (Student student : students) {  
  45.             if(student.getTeacher().getId() == tid){  
  46.                 list.add(student);  
  47.             }  
  48.         }  
  49.         String json = JSONArray.fromObject(list).toString();  
  50.         HttpServletResponse response = ServletActionContext.getResponse();  
  51.         response.setCharacterEncoding("UTF-8");  
  52.         try {  
  53.             response.getWriter().write(json);  
  54.         } catch (IOException e) {  
  55.             e.printStackTrace();  
  56.         }  
  57.         return null;  
  58.     }  
  59.     public int getTid() {  
  60.         return tid;  
  61.     }  
  62.     public void setTid(int tid) {  
  63.         this.tid = tid;  
  64.     }  

你可能感兴趣的:(jquery)