我有两个下拉菜单。
1 ->下拉菜单(name="DropDown1")有两个值,分别是ABC和ABCD
2nd ->下拉菜单(name="DropDown2")有3个值,分别是1、2和3。
现在我的问题是,在Javascript中,如果用户从DropDown1中选择ABC,那么我如何才能使DropDown2只显示值1和2,而不是3,这是因为你不能为ABC选择3个答案,但如果用户从DropDown1中选择ABCD,那么就能够在DropDown2中显示值1,2和3。
谢谢
我将设置一个键/值对的对象来保存您的选择可能性。然后绑定到DropDown1上的change事件,以便在DropDown2发生变化时重写它的选项。
你的javascript对象看起来像这样…
var DropOne = new Array();
DropOne.ABC = [1, 2];
DropOne.ABCD = [1, 2, 3];
如果您将jQuery标记添加到问题中,我很乐意向您展示一些工作代码。虽然我无法在纯javascript中做到这一点…哎呀:)
好了……如果你想用jQuery的话,它就在这里了…
http://jsfiddle.net/brettzink/pND9u/你必须有两个数组,在选择问题时,你必须在答案选择中填充选项,示例代码:
<html>
<head>
<title>Question Answer Test</title>
<script type="text/javascript">
var dropdown1 = [];
var dropdown2 = [];
dropdown1[0] = new Option("1", "1");
dropdown1[1] = new Option("2", "2");
dropdown2[0] = new Option("1", "1");
dropdown2[1] = new Option("2", "2");
dropdown2[2] = new Option("3", "3");
function populateAnswer(qusSelectBox, ansSelectBox){
var tempMenuItem;
ansSelectBox.options.length = 0;
switch (qusSelectBox.selectedIndex) {
case 0:
tempMenuItem = dropdown1;
break;
case 1:
tempMenuItem = dropdown2;
break;
}
for (var i = 0; i < tempMenuItem.length; i++) {
ansSelectBox.options[i] = tempMenuItem[i];
}
}
</script>
</head>
<body>
<form name="Menus">
<select name="Question" onchange="populateAnswer(this, this.form.Answer);">
<option value="ABC">ABC</option>
<option value="ABCD">ABCD</option>
</select>
<select name="Answer">
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>
</body>
</html>