复习了一下JQUERY,做了一个JQUERY 实现的2级别联动,主要联系了一下JQUERY 的ajax功能,代码后台数据写死数据结构和之前我的EXTJS2级联动一样采用JSON 数据传输,代码框架也只直接从EXTJS2级联动代码中复制过来的 算是struts2+jquery +json吧
主要代码介绍
$(function(){ $.ajax({ url: "getlist.action", type: 'POST', dataType: 'JSON', timeout: 5000, error: function() { alert('Error loading data!'); }, success: function(msg) { $("#province").empty(); $.each(eval(msg), function(i, item) { $("<option value='" + item.id + "'>" + item.name + "</option>").appendTo($("#province")); }); // loadCity($("#province").val()); } }); $("#province").change(function() { loadCity($("#province").val()); }); function loadCity(parentid) { $.ajax({ url: 'getlist2.action?id='+ parentid, type: 'POST', dataType: 'JSON', timeout: 5000, error: function() { alert('Error loading data!'); }, success: function(msg) { $("#city").empty(); $.each(eval(msg), function(i, item) { $("<option value='" + item.id + "'>" + item.name + "</option>").appendTo($("#city")); }); } }); } })
初始化$.ajax 方法调用后台getlist.action 返回省的数据 后写了一个 $("#province").change(function() 事件绑定,省变化后触发loadCity 方法返回市的数据
完整的 test.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<head>
<title>ddd</title>
</head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(function(){
$.ajax({
url: "getlist.action",
type: 'POST',
dataType: 'JSON',
timeout: 5000,
error: function() { alert('Error loading data!'); },
success: function(msg) {
$("#province").empty();
$.each(eval(msg), function(i, item) {
$("<option value='" + item.id + "'>" + item.name + "</option>").appendTo($("#province"));
});
// loadCity($("#province").val());
}
});
$("#province").change(function() {
loadCity($("#province").val());
});
function loadCity(parentid) {
$.ajax({
url: 'getlist2.action?id='+ parentid,
type: 'POST',
dataType: 'JSON',
timeout: 5000,
error: function() { alert('Error loading data!'); },
success: function(msg) {
$("#city").empty();
$.each(eval(msg), function(i, item) {
$("<option value='" + item.id + "'>" + item.name + "</option>").appendTo($("#city"));
});
}
});
}
})
</script>
<body>
<div align="center">
<select id='province'>
<option id="provinceonline" value="">
所有
</option>
</select>
<select id='city'>
<option id="cityonline" value="">
所有
</option>
</select>
</div>
</body>
</html>
效果图
选择某一个城市
选中后看它所在的城市