html外部下拉框表格联动,Html下拉框Select联动实例

在开发网站时,经常会有二个或多个select下拉框联动的情况,比如省份和城市二个下拉框联动,在省份下拉框里选择不同的省,第二个下拉框城市就要对应该省份下的城市数据。

下面一起来看下,怎么用Javascript生成这样的联动下拉框。

01、首先,看下我们定义的二个数组的数据,一个arr_class,是班级数据(每条数据包括班级id和班级名称)

另一个是arr_stu,是学生数据(每条数据包括学生id,所属班级,学生名称)。

我们例子做的是班级和学生的二个下拉框的联动。

frc-b83f3edb1e92b8ff9304530836423069.jpg

02、我们的初始Html代码,是二个空的select下拉框控件。

按这样的代码运行,是没有数据的二个下拉框。

frc-5e922cac98720a013c631ca0ad4e142a.jpg

frc-ae5e12fbf5af553b3df9964a0cefa80b.jpg

03、添加JS逻辑,为二个下拉框生成初始数据,我们先写一个方法,general_select_1,为第一个下拉框填充数据。

代码如图,主要是循环arr_class数组,用数组的每一项来生成一个下拉选项,然后用Jquery的append方法,加到第一个下拉框里,

frc-c112136e62f734a6d03bfdf6f8a937e5.jpg

04、再写一个方法general_select_2,为第二个下拉框填充数据,这个方法接收一个class_id的参数,根据这个参数来过滤填充的数据。比如class_id为1时,就只填充所属班级为1的学生。

这个方法主要是循环arr_stu数组,用数组里符合class_id参数的项来生成一个下拉选项,然后用Jquery的append方法,加到第二个下拉框里,

frc-eebf75894cf9c0e88ac2cfb8aca3246c.jpg

05、二个方法写好,我们就可以在页面加载完时,调用这二个方法,来填充下拉框的数据,代码如下。

general_select_1();//这个主要是填充第一个下拉框的数据

general_select_2(0);//这个主要是填充第二个下拉框的数据,这里为什么传参数0?因为第一个下拉框里有一个‘请选择班级’的选项,这是个默认选中的选项,这个选项不是一个具体的班级,所以第二个下拉框里不应该有学生的数据。

frc-4c2a54e0c8047bdb01c9e407c27a55fa.jpg

06、运行后,页面上的二个下拉框都有数据了。

frc-869261079ad2d2e465be1b5639a92009.jpg

frc-6488f16d384d32a79dcafd8ee9c14117.jpg

07、我们再为第一个下拉框添加事件代码,当选择一个班级时,就改变第二个下拉框的数据,填充上对应班级的学生数据。

代码很简单,先获取到第一个下拉框选中的项的value值,即选中哪个班级,然后调用方法2,general_select_2,并把选中的班级id做参数传进去就行了,方法2就会根据这个班级的参数过滤到正确的数据后,填充到第二个下拉框里。

varclass_id=(this).val();

general_select_2(class_id);

frc-ad537bc474e1d90d05e5571ee608320a.jpg

08、刷新页面后,我们改变第一个下拉框的值,第二个下拉框的学生数据就会跟着改变,实现了二个select的联动。

frc-243292f2b5d12131f85ade0a9f0f6295.jpg

frc-99c727fcb1ffb9b244e4864ae8c02465.jpg

frc-32c3e30471fc1ff4d111dad4042e30fd.jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多级联动下拉框可以通过JavaScript实现。以下是一个简单的例子: HTML代码: ```html <select id="province" onchange="updateCity()"> <option value="">请选择省份</option> <option value="江苏">江苏</option> <option value="浙江">浙江</option> </select> <select id="city" onchange="updateDistrict()"> <option value="">请选择城市</option> </select> <select id="district"> <option value="">请选择区县</option> </select> ``` JavaScript代码: ```javascript var cityData = { "江苏": ["南京", "苏州", "无锡"], "浙江": ["杭州", "宁波", "温州"] }; var districtData = { "南京": ["玄武区", "鼓楼区", "建邺区"], "苏州": ["姑苏区", "虎丘区", "吴中区"], "无锡": ["锡山区", "惠山区", "滨湖区"], "杭州": ["西湖区", "上城区", "下城区"], "宁波": ["海曙区", "江东区", "江北区"], "温州": ["鹿城区", "龙湾区", "瓯海区"] }; function updateCity() { var province = document.getElementById("province").value; var citySelect = document.getElementById("city"); var districtSelect = document.getElementById("district"); citySelect.innerHTML = "<option value=''>请选择城市</option>"; districtSelect.innerHTML = "<option value=''>请选择区县</option>"; if (province != "") { var cities = cityData[province]; for (var i = 0; i < cities.length; i++) { var option = document.createElement("option"); option.value = cities[i]; option.innerHTML = cities[i]; citySelect.appendChild(option); } } } function updateDistrict() { var province = document.getElementById("province").value; var city = document.getElementById("city").value; var districtSelect = document.getElementById("district"); districtSelect.innerHTML = "<option value=''>请选择区县</option>"; if (province != "" && city != "") { var districts = districtData[city]; for (var i = 0; i < districts.length; i++) { var option = document.createElement("option"); option.value = districts[i]; option.innerHTML = districts[i]; districtSelect.appendChild(option); } } } ``` 在这个例子中,我们定义了两个对象:cityData和districtData,分别保存了城市和区县的数据。当省份下拉框的值发生变化时,我们会根据选中的省份动态生成城市下拉框的选项。同样地,当城市下拉框的值发生变化时,我们会根据选中的城市动态生成区县下拉框的选项。 你可以根据自己的需求修改cityData和districtData对象,来实现更复杂的多级联动下拉框效果

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值