Magento 中的链式下拉菜单不起作用
Chained Dropdown Menu in Magento not working
我正在寻找大约 3 天的时间来解决问题,但我无法获得最终部分以使其成为可能。
我的问题是我无法在我的 3 个菜单之间建立依赖关系。
这意味着 C 的选项应取决于 B 中选择的值,B 的选项必须取决于 A 中选择的值。即 a->b->c
我只有菜单 a -> b,没有 b -> c。
如果有人可以给我一个新的代码来使用,我只需要输入选项即可。
这是我的代码:
<html>
<head>
<style type="text/css">
</style>
<script language="Javascript">
<!-- Start
function update_auswahl1() {
var speicher;
var auswahl1 = document.forms.verzeichnis.auswahl1;
var auswahl2 = document.forms.verzeichnis.auswahl2;
var auswahl3 = document.forms.verzeichnis.auswahl3;
auswahl2.options.length = 0; // DropDown Menü entleeren
auswahl3.options.length = 0; // DropDown Menü entleeren
//********************** AUSWAHL 1 ****************************************************************
if (auswahl1.options[auswahl1.selectedIndex].value == "a") {
auswahl2.options[0] = new Option("d");
auswahl2.options[1] = new Option("e");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "b") {
auswahl2.options[0] = new Option("e");
auswahl2.options[1] = new Option("f");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "c") {
auswahl2.options[0] = new Option("f");
auswahl2.options[1] = new Option("g");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "") {
auswahl2.options[0] = new Option("---- Bitte waehlen ----");
}
//*************************************************************************************************
//********************* AUSWAHL 2 *****************************************************************
if (auswahl2.options[auswahl2.selectedIndex].values == "d") {
auswahl3.options[0] = new Option("h");
auswahl3.options[1] = new Option("i");
auswahl3.options[2] = new Option("j");
} else if (auswahl2.options[auswahl2.selectedIndex].values == "e") {
auswahl3.options[0] = new Option("i");
auswahl3.options[1] = new Option("j");
auswahl3.options[2] = new Option("k");
} else if (auswahl2.options[auswahl2.selectedIndex].values == "f") {
auswahl3.options[0] = new Option("k");
auswahl3.options[1] = new Option("l");
auswahl3.options[2] = new Option("m");
}
}
//*************************************************************************************************
// Ende -->
</script>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="verzeichnis">
<select size="1" name="auswahl1" onChange="update_auswahl1()">
<option value="" selected>---- Bitte wählen ----</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
<br>
<br>
<select size="1" name="auswahl2">
<option selected>---- Bitte wählen ----</option>
</select>
<br>
<br>
<select name="auswahl3" size="1">
<option selected>---- Bitte wählen ----</option>
</select>
</form>
</body>
</html>
感谢四位的帮助
你犯了 3 个错误:
- 在 if-else 块 "AUSWAHL 2" 中键入“.values”而不是“.value”
(auswahl2.options[auswahl2.selectedIndex].values == "d")
- You have not add the handler on select auswahl2.
- Need to write 2 functions instead of 1, otherwise when you change auswahl2, he will be overwritten without storing the selected value.
<html>
<head>
<style type="text/css">
</style>
<script language="Javascript">
<!-- Start
function update_auswahl1() {
var speicher;
var auswahl1 = document.forms.verzeichnis.auswahl1;
var auswahl2 = document.forms.verzeichnis.auswahl2;
var auswahl3 = document.forms.verzeichnis.auswahl3;
auswahl2.options.length = 0; // DropDown Menü entleeren
auswahl3.options.length = 0; // DropDown Menü entleeren
//********************** AUSWAHL 1 ****************************************************************
if (auswahl1.options[auswahl1.selectedIndex].value == "a") {
auswahl2.options[0] = new Option("d");
auswahl2.options[1] = new Option("e");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "b") {
auswahl2.options[0] = new Option("e");
auswahl2.options[1] = new Option("f");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "c") {
auswahl2.options[0] = new Option("f");
auswahl2.options[1] = new Option("g");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "") {
auswahl2.options[0] = new Option("---- Bitte waehlen ----");
}
update_auswahl2();
//*************************************************************************************************
}
function update_auswahl2() {
var speicher;
var auswahl2 = document.forms.verzeichnis.auswahl2;
var auswahl3 = document.forms.verzeichnis.auswahl3;
auswahl3.options.length = 0; // DropDown Menü entleeren
//********************* AUSWAHL 2 *****************************************************************
if (auswahl2.options[auswahl2.selectedIndex].value == "d") {
auswahl3.options[0] = new Option("h");
auswahl3.options[1] = new Option("i");
auswahl3.options[2] = new Option("j");
} else if (auswahl2.options[auswahl2.selectedIndex].value == "e") {
auswahl3.options[0] = new Option("i");
auswahl3.options[1] = new Option("j");
auswahl3.options[2] = new Option("k");
} else if (auswahl2.options[auswahl2.selectedIndex].value == "f") {
auswahl3.options[0] = new Option("k");
auswahl3.options[1] = new Option("l");
auswahl3.options[2] = new Option("m");
}
}
//*************************************************************************************************
// Ende -->
</script>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="verzeichnis">
<select size="1" name="auswahl1" onChange="update_auswahl1()">
<option value="" selected>---- Bitte wählen ----</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
<br>
<br>
<select size="1" name="auswahl2" onChange="update_auswahl2()">
<option selected>---- Bitte wählen ----</option>
</select>
<br>
<br>
<select name="auswahl3" size="1">
<option selected>---- Bitte wählen ----</option>
</select>
</form>
</body>
</html>
我正在寻找大约 3 天的时间来解决问题,但我无法获得最终部分以使其成为可能。
我的问题是我无法在我的 3 个菜单之间建立依赖关系。
这意味着 C 的选项应取决于 B 中选择的值,B 的选项必须取决于 A 中选择的值。即 a->b->c
我只有菜单 a -> b,没有 b -> c。
如果有人可以给我一个新的代码来使用,我只需要输入选项即可。
这是我的代码:
<html>
<head>
<style type="text/css">
</style>
<script language="Javascript">
<!-- Start
function update_auswahl1() {
var speicher;
var auswahl1 = document.forms.verzeichnis.auswahl1;
var auswahl2 = document.forms.verzeichnis.auswahl2;
var auswahl3 = document.forms.verzeichnis.auswahl3;
auswahl2.options.length = 0; // DropDown Menü entleeren
auswahl3.options.length = 0; // DropDown Menü entleeren
//********************** AUSWAHL 1 ****************************************************************
if (auswahl1.options[auswahl1.selectedIndex].value == "a") {
auswahl2.options[0] = new Option("d");
auswahl2.options[1] = new Option("e");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "b") {
auswahl2.options[0] = new Option("e");
auswahl2.options[1] = new Option("f");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "c") {
auswahl2.options[0] = new Option("f");
auswahl2.options[1] = new Option("g");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "") {
auswahl2.options[0] = new Option("---- Bitte waehlen ----");
}
//*************************************************************************************************
//********************* AUSWAHL 2 *****************************************************************
if (auswahl2.options[auswahl2.selectedIndex].values == "d") {
auswahl3.options[0] = new Option("h");
auswahl3.options[1] = new Option("i");
auswahl3.options[2] = new Option("j");
} else if (auswahl2.options[auswahl2.selectedIndex].values == "e") {
auswahl3.options[0] = new Option("i");
auswahl3.options[1] = new Option("j");
auswahl3.options[2] = new Option("k");
} else if (auswahl2.options[auswahl2.selectedIndex].values == "f") {
auswahl3.options[0] = new Option("k");
auswahl3.options[1] = new Option("l");
auswahl3.options[2] = new Option("m");
}
}
//*************************************************************************************************
// Ende -->
</script>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="verzeichnis">
<select size="1" name="auswahl1" onChange="update_auswahl1()">
<option value="" selected>---- Bitte wählen ----</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
<br>
<br>
<select size="1" name="auswahl2">
<option selected>---- Bitte wählen ----</option>
</select>
<br>
<br>
<select name="auswahl3" size="1">
<option selected>---- Bitte wählen ----</option>
</select>
</form>
</body>
</html>
感谢四位的帮助
你犯了 3 个错误:
- 在 if-else 块 "AUSWAHL 2" 中键入“.values”而不是“.value”
(auswahl2.options[auswahl2.selectedIndex].values == "d")
- You have not add the handler on select auswahl2.
- Need to write 2 functions instead of 1, otherwise when you change auswahl2, he will be overwritten without storing the selected value.
<html>
<head>
<style type="text/css">
</style>
<script language="Javascript">
<!-- Start
function update_auswahl1() {
var speicher;
var auswahl1 = document.forms.verzeichnis.auswahl1;
var auswahl2 = document.forms.verzeichnis.auswahl2;
var auswahl3 = document.forms.verzeichnis.auswahl3;
auswahl2.options.length = 0; // DropDown Menü entleeren
auswahl3.options.length = 0; // DropDown Menü entleeren
//********************** AUSWAHL 1 ****************************************************************
if (auswahl1.options[auswahl1.selectedIndex].value == "a") {
auswahl2.options[0] = new Option("d");
auswahl2.options[1] = new Option("e");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "b") {
auswahl2.options[0] = new Option("e");
auswahl2.options[1] = new Option("f");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "c") {
auswahl2.options[0] = new Option("f");
auswahl2.options[1] = new Option("g");
} else if (auswahl1.options[auswahl1.selectedIndex].value == "") {
auswahl2.options[0] = new Option("---- Bitte waehlen ----");
}
update_auswahl2();
//*************************************************************************************************
}
function update_auswahl2() {
var speicher;
var auswahl2 = document.forms.verzeichnis.auswahl2;
var auswahl3 = document.forms.verzeichnis.auswahl3;
auswahl3.options.length = 0; // DropDown Menü entleeren
//********************* AUSWAHL 2 *****************************************************************
if (auswahl2.options[auswahl2.selectedIndex].value == "d") {
auswahl3.options[0] = new Option("h");
auswahl3.options[1] = new Option("i");
auswahl3.options[2] = new Option("j");
} else if (auswahl2.options[auswahl2.selectedIndex].value == "e") {
auswahl3.options[0] = new Option("i");
auswahl3.options[1] = new Option("j");
auswahl3.options[2] = new Option("k");
} else if (auswahl2.options[auswahl2.selectedIndex].value == "f") {
auswahl3.options[0] = new Option("k");
auswahl3.options[1] = new Option("l");
auswahl3.options[2] = new Option("m");
}
}
//*************************************************************************************************
// Ende -->
</script>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="verzeichnis">
<select size="1" name="auswahl1" onChange="update_auswahl1()">
<option value="" selected>---- Bitte wählen ----</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
<br>
<br>
<select size="1" name="auswahl2" onChange="update_auswahl2()">
<option selected>---- Bitte wählen ----</option>
</select>
<br>
<br>
<select name="auswahl3" size="1">
<option selected>---- Bitte wählen ----</option>
</select>
</form>
</body>
</html>