UPDATE: Code wurde aktualisiert nach Dan Kommentare.So erstellen Sie eine Liste von Kontrollkästchen dynamisch mit Javascript
Ich habe ein Problem mit einem Projekt, an dem ich arbeite. Ich muss eine Liste von Kontrollkästchen erstellen, abhängig davon, was in einem Dropdown-Menü oben ausgewählt wurde. Ich möchte Javascript dafür verwenden. Ich war in der Lage, eine Auswahl-Dropdown-Liste abhängig von der Auswahl oben zu erstellen, aber der Client möchte stattdessen Kontrollkästchen. Ich dachte, es würde im Wesentlichen genauso gemacht werden, außer diesmal Checkboxen zu machen, aber ich kann es nicht zur Arbeit bringen. Normalerweise benutze ich PHP für meine Programmierung und kenne daher JavaScript nicht so gut. Hier ist der Code, den ich zum Auswahl-Dropdown machen muss ... was wäre der beste Weg, um es stattdessen zu einer Liste von Checkboxen zu machen? Bitte beachten Sie, dass dieser Code stark reduziert wurde, um das Lesen zu erleichtern (nur die wichtigen Teile sind hier).
Code:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function populate(slct1,slct2){
var s1 = document.getElementById(slct1);
var s2 = document.getElementById(slct2);
s2.innerHTML = "";
if(s1.value == "Cat1"){
var optionArray = ["Subcat1","Subcat1.1","Subcat1.2"];
} else if(s1.value == "Cat2"){
var optionArray = ["Subcat2","Subcat2.1","Subcat2.2"];
} else if(s1.value == "Cat3"){
var optionArray = ["Subcat3","Subcat3.1","Subcat3.3"];
}
for(var option in optionArray){
if (optionArray.hasOwnProperty(option)) {
var pair = optionArray[option];
var newOption = document.createElement("option");
newOption.value = pair;
newOption.innerHTML = pair;
s2.options.add(newOption);
}
}
}
</script>
</head>
<body>
<h2>Dynamic Select Dropdown</h2>
<hr />
Choose a Category:
<select id="slct1" name="slct1" onchange="populate(this.id,'slct2')">
<option value=""></option>
<option value="Cat1">Cat1</option>
<option value="Cat2">Cat2</option>
<option value="Cat3">Cat3</option>
</select>
<hr />
Choose Subcategory:
<select id="slct2" name="slct2"></select>
<hr />
</body>
</html>
Jede Hilfe wäre sehr dankbar, und ich würde mein Bestes versuchen, die Gunst zurückzahlen, wenn Sie jemals Hilfe bei jeder Entwicklung benötigt.
Beachten Sie, dass 'for (var option in optionArray)' die nativen Eigenschaften von 'optionArray' als enthält naja, das willst du nicht. Siehe [hasOwnProperty] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty). http://jsfiddle.net/dandv/9aZQF/ –
Danke Dan. Ich habe den Code aktualisiert, um Ihre Eingabe zu reflektieren. Irgendeine Idee, wie ich das mache, was ich tun muss, um mein Hauptproblem zu lösen? – stereoscience
Ich habe gerade [die Antwort] (http://stackoverflow.com/a/13330382/1269037), mit einem vollen funktionierenden Beispiel gepostet :) –