JQuery实例(一)- 二级联动

从这里开始的话,会整理一下JQuery的使用,主要是一些例子。

demo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>JQuery Demo</title>
		
		<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
		<script type="text/javascript" src="js/province_city.js"></script>
	</head>
	
	<body>
		<center>
			<h3>省市二级联动</h3>
			省份:<select id="sl_province"></select>
			城市:<select id="sl_city"></select>
		</center>
	</body>
</html>

province_city.js

二级联动的总体思想是:

1.有一个省份下拉框,一个城市下拉框,

2.开始的时候,省份下拉框有数据,可以选择省份

3.选择完省份之后,如果选择的内容改变,就会根据省份的ID,动态的从后台获取城市数据

注意:

1.使用JQuery监听省份下拉框的change事件

2.每一次都需要清空城市下拉框的数据

(function() {
	$().ready(function() {
		
		//加载省份数据
		getData('common!queryProvince' , function(data) {
			showData($("#sl_province") , data);
		});
		
		//监听省份下拉框的改变
		$("#sl_province").change(function() {
			var id = $("#sl_province").val();
			
			//清空数据
			$("#sl_city").text("");

			if(id > 0) {
				getData('common!queryCity?id=' + id , function(data) {
					showData($("#sl_city") , data);
				});
			}
		});
		
		/**
		 * 查询数据
		 */
		function getData(url , callback) {
			$.ajax({
				type: 'get',
				url: url ,
				dataType: 'json',
				
				success: function(data) {
					callback(data);
				}
			});
		}
		
		
		
		/**
		 * 显示数据
		 */
		function showData(obj , data) {
			//遍历数据
			$.each(data , function(i,element){
				if(i == 0) {
					obj.append("<option  selected>请选择</option><option value='"+element.id+"'>"+element.name+"</option>");
				} else {
					obj.append("<option value='"+element.id+"'>"+element.name+"</option>");
				}
			});
		}
		
		//动态修改城市数据
	});
})();

JQueryAction.java

package org.ygy.jquery.action;

import java.util.ArrayList;
import java.util.List;

import org.ygy.jquery.vo.SimpleVO;

import com.opensymphony.xwork2.ActionSupport;

public class JQueryAction extends ActionSupport {
	private static final long serialVersionUID = 6797154008479295854L;
	
	private List<SimpleVO> voList;
	private Integer id;
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}


	public List<SimpleVO> getVoList() {
		return voList;
	}


	public void setVoList(List<SimpleVO> voList) {
		this.voList = voList;
	}


	/**
	 * 获取省份信息
	 * @return
	 */
	public String queryProvince() {
		voList = new ArrayList<SimpleVO>();
		voList.add(new SimpleVO(1 , "山东省"));
		voList.add(new SimpleVO(2 , "辽宁省"));
		voList.add(new SimpleVO(3 , "江苏省"));
		
		return SUCCESS;
	}
	
	/**
	 * 获取城市信息
	 * @return
	 */
	public String queryCity() {
		voList = new ArrayList<SimpleVO>();
		
		switch(id) {
		case 1:
			voList.add(new SimpleVO(10 , "青岛市"));
			voList.add(new SimpleVO(11 , "济南市"));
			voList.add(new SimpleVO(12 , "烟台市"));
			
			break;
		case 2:
			voList.add(new SimpleVO(20 , "丹东市"));
			voList.add(new SimpleVO(21 , "大连市"));
			voList.add(new SimpleVO(22 , "沈阳市"));
			voList.add(new SimpleVO(23 , "鞍山市"));
			
			break;
		case 3:
			voList.add(new SimpleVO(30 , "无锡市"));
			voList.add(new SimpleVO(31 , "常州市"));
			
			break;
		}
		
		return SUCCESS;
	}
}

SimpleVO.java

package org.ygy.jquery.vo;

import java.io.Serializable;

public class SimpleVO implements Serializable {
	private static final long serialVersionUID = 8269923725710560925L;

	private Integer id;
	private String name;
	
	public SimpleVO() {}
	
	public SimpleVO(Integer _id , String _name) {
		this.id = _id;
		this.name = _name;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<constant name="struts.i18n.encoding" value="utf-8"></constant>
	<constant name="struts.multipart.maxSize" value="20971520"/>
    <constant name="struts.devMode" value="true" />
    
	
	<package name="p_province" extends="json-default" namespace="/">
		<action name="common" class="org.ygy.jquery.action.JQueryAction">
			<result name="success" type="json">
				<param name="root">voList</param>
			</result>
		</action>
	</package>
</struts>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jQuery省市区二级联动是一种常见的前端技术,用于实现在选择省份后,自动加载对应的城市列表,再根据选择的城市加载对应的区县列表。以下是实现该功能的一般步骤: 1. 创建HTML结构:在HTML中创建省、市、区县的下拉列表框,并为它们添加对应的id或class属性,用于后续的操作。 2. 加载省份数据:通过Ajax请求获取省份数据,可以从后端接口获取或者直接在前端定义一个省份数据数组。 3. 绑定省份数据:将获取到的省份数据绑定到省份下拉列表框中,可以使用jQuery的append()方法动态添加option元素。 4. 监听省份选择事件:使用jQuery的change()方法监听省份下拉列表框的选择事件,当选择了省份后触发相应的事件。 5. 根据选择的省份加载城市数据:根据选择的省份,通过Ajax请求获取对应的城市数据。 6. 绑定城市数据:将获取到的城市数据绑定到城市下拉列表框中,可以使用jQuery的append()方法动态添加option元素。 7. 监听城市选择事件:使用jQuery的change()方法监听城市下拉列表框的选择事件,当选择了城市后触发相应的事件。 8. 根据选择的城市加载区县数据:根据选择的城市,通过Ajax请求获取对应的区县数据。 9. 绑定区县数据:将获取到的区县数据绑定到区县下拉列表框中,可以使用jQuery的append()方法动态添加option元素。 10. 完成二级联动效果:通过以上步骤,实现了省市区三级联动的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值