我有两个下拉菜单。
1st - >下拉菜单(名称=" DropDown1")有2个值,即ABC和ABCD
第二 - >下拉菜单(名称=" DropDown2")有3个值,分别为1,2和3.
现在我的问题是,在Javascript中,如果用户从DropDown1中选择ABC,那么我怎样才能得到它以便DropDown2仅显示值1和2而不是3,这是因为你不能选择3个答案对于ABC,但如果用户从DropDown1中选择ABCD,则可以在DropDown2中显示值1,2和3.
谢谢
答案 0 :(得分:1)
我会设置一个键/值对的对象来保存您的选择。然后绑定到DropDown1上的change事件,以便在更改时重写DropDown2的选项。
您的javascript对象看起来像这样......
var DropOne = new Array();
DropOne.ABC = [1, 2];
DropOne.ABCD = [1, 2, 3];
如果您将jQuery标记添加到问题中,我很乐意向您展示一些有用的代码。我不能在纯粹的javascript中做到这一点虽然...哎呀:)
好吧......好吧,如果你想要它,那就是jQuery吧......
答案 1 :(得分:1)
您必须拥有两个阵列,并且在选择问题时,您必须填写答案选择,示例代码中的选项:
<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>