省市区联动下拉效果在WEB中应用非常广泛,尤其在一些会员信息系统、电商网站最为常见。
下面举例一种实现方式:
htlm代码:
<form>
<select id="proSelect">
<option>选择省</option>
</select>
<select id="citySelect">
<option>选择市</option>
</select>
<select id="areaSelect">
<option>选择区</option>
</select>
</form>
js代码:
var pro=document.getElementById("proSelect");
var city=document.getElementById("citySelect");
var area=document.getElementById("areaSelect");
pro.addEventListener("change",addCity);
//将指定的监听器添加到该对象上 当pro触发change事件时 addCity()就会被执行。
city.addEventListener("change",addArea);
pro.add(new Option("陕西省","陕西省"));
//创建一个option对象 new Option(text, value) 并添加到<seletc>中
pro.add(new Option("山东省","山东省"));
function addCity(){
var choiceVal=pro.value;
city.options.length=1;
//options是个数组 里面存放着多个<option>标签 此处长度为1是为了保留默认的<option>
area.options.length=1;
if(choiceVal=="陕西省"){
city.add(new Option("西安市","西安市"));
city.add(new Option("渭南市","渭南市"));
}
else if (choiceVal=="山东省"){
city.add(new Option("济南市","济南市"));
city.add(new Option("济宁市","济宁市"));
}
}
function addArea(){
var choiceVal=city.value;
if(choiceVal=="西安市"){
area.add(new Option("未央区","未央区"));
area.add(new Option("碑林区","碑