欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Jquery动态操作下拉列表(s:select)

程序员文章站 2022-07-08 16:21:13
...

项目背景:Struts2 + Jquery-3.3.1.js

项目需求:页面初始化时,从Struts2的Action端将各个省,市的列表读取到列表(List)变量中,省份一个列表(List),每个市一个列表(List)。在画面(JSP)选择省份的时候,市需要关联变化,即显示为各个省自己的管辖市。

注:项目中没有用到AJAX,JSON,所以谈不上真正的动态。

 

感想:设计上有些奇怪,用一个列表(List)即可实现。尝试了将列表(List)存储在隐藏域(s:hidden)中,当使用Jquery读取的时候,取出的是对象类名,无法取到对象内容。遂将列表(List)直接存储到隐藏的下拉列表(s:select)里面,使用Jquery根据所选省份动态生成市下拉列表中的内容。

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!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>Insert title here</title>
<script src="js/jquery-3.3.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#selProvince').change(function(){
    	if($(this).val() == "1"){
    		var selCity = $('#selCity0 option');
    	}else if($(this).val() == "2"){
    		var selCity = $('#selCity1 option');
    	}else if($(this).val() == "3"){
            var selCity = $('#selCity2 option');
        }
    	
    	setselCity(selCity);
    });
});
function setselCity(selProvince){
	$('#selCity').empty();
	$('#selCity').append("<option></option>");
	selProvince.each(function(){
        var option = "<option value='" + $(this).val() + "'>" + $(this).text(); + "</option>";
        $('#selCity').append(option);
    });
}
</script>
</head>
<body>
    <table border="0" cellpadding="0" cellspacing="0">
        <colgroup>
            <col style="width:60px;text-align:right;">
            <col style="width:150px;text-align:left;">
            <col style="width:60px;text-align:right;">
            <col style="width:150px;text-align:left;">
        </colgroup>
        <tr>
            <td>省份</td>
            <td>
                <s:select theme="simple" id="selProvince" name="selProvince" list="#{'':'','1':'辽宁','2':'吉林','3':'黑龙江'}" />
            </td>
            <td>市</td>
            <td>
                <s:select theme="simple" id="selCity" name="selCity" list="#{}"></s:select>
            </td>
        </tr>
    </table>
    <s:select style="display:none" id="selCity0" name="selCity0" list="#{'1':'沈阳','2':'大连','3':'营口'}"></s:select>
    <s:select style="display:none" id="selCity1" name="selCity1" list="#{'1':'长春','2':'吉林','3':'延吉'}"></s:select>
    <s:select style="display:none" id="selCity2" name="selCity2" list="#{'1':'哈尔滨','2':'齐齐哈尔','3':'漠河'}"></s:select>
</body>
</html>

 

 

相关标签: jquery html jsp