JavaScript 实现 Select 级联菜单:动态生成与数据绑定

作者:微光时间:2026-10-26 22:15:56浏览:504

本文介绍如何利用 JavaScript 和 HTML 的 Select 标签实现级联菜单效果。通过监听 onchange 事件,在第一个下拉框值改变时,动态清除第二个下拉框的旧选项,并根据预设逻辑生成新的 Option 对象添加到第二个 Select 中,从而实现两级联动。

Select 基础结构与值获取

示例场景如下:


基础代码示例如下:

 
<form name="form1" method="POST" action="--WEBBOT-SELF--">
<select id="select1" onchange="select1onchange()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</form>

建议为每个 option 设置明确的 value 属性,以便准确标识用户所选的具体项。


在 JavaScript 中,可以通过 document.getElementById("select1").value 或 form1.select1.value 来获取当前选中的值。


这样即可获取用户选择的数值。


利用 onchange 事件,当 select 的选项值发生变化时触发处理逻辑。



使用级联菜单时

实现 Select 级联菜单逻辑

创建两个 select 元素,分别设置其 id 为 select1 和 select2。


为 select1 编写触发函数 select1onchange(),在该函数内部获取 select1 的当前值。


根据获取的值查找对应的 select2 选项数据,并动态为 select2 添加相应的选项,从而实现级联效果。


完整代码示例如下:

 
<select id="select1" onchange="select1onchange()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select id="select2" onchange="select2onchange()">
</select>
function t1onfocus()
{ 
document.getElementById("p1").innerHTML="获得焦点";
} 
function select1onchange()
{ 
var i;
for (i=10;i>=0;i--)
form1.select2.remove(i);
var objOption;
for (i=0;i<=9;i++)
{ 
objOption=document.createElement("OPTION");
objOption.text=form1.select1.value*10+i;
objOption.value=form1.select1.value*10+i;
form1.select2.options.add(objOption);
} 
} 
function select2onchange()
{ 
p1.innerHTML=form1.select2.value; //p1是文档中用于输出的自定义的项。
} 
作者最新文章