作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这里尝试创建 html 下拉列表。在我的主列表 mobile
和 laptop
上,我有两件事要选择。如果我在第一个列表中选择移动选项,第二个下拉列表必须加载移动品牌的选项。如果我选择笔记本电脑,它必须加载笔记本电脑品牌。现在第三个列表必须填充取决于第二个列表选择。假设如果我选择三星作为移动品牌,它必须在下一个下拉菜单中加载安卓版本。
我的代码(我在此处添加了第二个菜单列表,具有相同的 ID。)
<select id="main_list">
<option value="default" selected>Select Your List</option>
<option value="mobile">mobile list</option>
<option value="laptop">laptop list</option>
</select>
<select id="brands">
<option value="default" selected>Select Your Mobile Brand</option>
<option value="mobile_1">Samsung</option>
<option value="mobile_2">Nokia</option>
</select>
<select id="brands">
<option value="default" selected>Select Your Laptop Brand</option>
<option value="laptop_1">HP</option>
<option value="laptop_2">Dell</option>
</select>
<select id="samsung_select">
<option value="default" selected>Select Your Andriod Version</option>
<option value="andriod_1">4.1</option>
<option value="andriod_2">4.2</option>
</select>
<select id="nokia_select">
<option value="default" selected>Select Your Windows Version</option>
<option value="windows_1">windows 8</option>
<option value="windows_2">windows 8.1</option>
</select>
自动填充此列表的最佳方法是什么。此处不使用任何数据库。
之前看过一个类似的问题here , 但这对我不起作用
最佳答案
无法回避,这是一个有点乏味的编码,但这应该给你一个好的开始:
HTML:
<select id="main_list">
<option value="default" selected>Select Your List</option>
<option value="mobile">mobile list</option>
<option value="laptop">laptop list</option>
</select>
<select id="brand" class="secondary"></select>
<select id="version" class="secondary"></select>
CSS:
.secondary {display:none;}
js/jQuery:
$(function() {
var sel, i,
list = ['mobile', 'laptop'],
phone = ['Samsung', 'Nokia'],
laptop = ['HP', 'Dell'],
android = ['4.1', '4.2'],
windows = ['8', '8.1'],
dev_default = '<option value="default" selected>Select your Device brand</option>',
os_default = '<option value="default" selected>Select your OS version</option>';
sel_brand = $('#brand');
sel_version = $('#version');
$('select').change(function() {
switch (this.id) {
case 'main_list':
$('.secondary').hide();
sel_brand.find('option').remove();
sel_brand.append(dev_default);
sel_brand.show();
if (this.value == 'mobile') {
for (i = 0; i < phone.length; i++) {
$("#brand").append(
'<option value="' + phone[i] + '">' + phone[i] + '</option>'
);
}
}else if (this.value == 'laptop') {
for (i = 0; i < phone.length; i++) {
$("#brand").append(
'<option value="' + laptop[i] + '">' + laptop[i] + '</option>'
);
}
}
break;
case 'brand':
sel_version.find('option').remove();
sel_version.append(os_default);
sel_version.show();
if (this.value == 'Samsung') {
for (i = 0; i < android.length; i++) {
$("#version").append(
'<option value="' + android[i] + '">' + android[i] + '</option>'
);
}
}else if (this.value == 'Nokia' || this.value == 'HP' || this.value == 'Dell') {
for (i = 0; i < windows.length; i++) {
$("#version").append(
'<option value="' + windows[i] + '">' + windows[i] + '</option>'
);
}
}
break;
}
});
}); //END document.ready()
关于javascript - 填充第二个下拉菜单取决于第一个下拉菜单选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910870/
我是一名优秀的程序员,十分优秀!