Ich habe ein Javascript-Problem mit dem Theme-Portal. Und zwar möchte ich gerne, dass beim Upload neuer Themes in dem Formular, sobald man ein bestimmtes Handy ausgewählt hat, auch alle anderen "kompatiblen" Handys automatisch ausgewählt werden (siehe angehänger Screenshot).
Ein Beispiel:
Wenn man das K800i auswählt, sollen per JavaScript automatisch auch das K790i, K810i, S500i, W580i, W830i und das W850i ausgewählt werden.
Gibt es bereits irgendwo ein fertiges JavaScript, mit dem man in einem Select-Feld eines HTML-Formulars verschiedene Felder wie oben beschrieben zu Gruppen zusammenfassen und automatisch mitselektieren lassen kann?
Keyser Soze
28.03.2008, 14:11
Jippie. Ich habe es nun selber hingebekommen, nachdem ich mich nach einiger Zeit noch mal drangesetzt hatte. Falls jemand über Google mal nach dieser Problemstellung sucht und auf diesen Forenbeitrag stößt, werde ich die Lösung der Vollständigkeit halber auch hier veröffentlichen:
<html>
<head>
<script type="text/javascript">
function selectGroups(idname) {
var groups = new Array();
groups[0] = new Array(5, 6); // C/SL65
groups[1] = new Array(2, 3, 8, 9, 13, 15, 16); // X65
groups[2] = new Array(10, 14, 19, 20, 22); // X75
groups[3] = new Array(21, 23); // E/EL71
groups[4] = new Array(18); // EF81
groups[5] = new Array(11); // SXG75
var selectBox = document.getElementById(idname);
var selectedGroup = new Array();
// determine group
for(i=0; i < selectBox.options.length; i++) {
for (gi=0; gi < groups.length; gi++) {
if((selectBox.options[i].selected == true) && inArray(groups[gi], selectBox.options[i].value)){
selectedGroup = groups[gi];
break;
}
}
}
// set selected status
for(i=0; i < selectBox.options.length; i++) {
if (inArray(selectedGroup, selectBox.options[i].value)) {
selectBox.options[i].selected = true;
}
}
}
function inArray(arrayName, valueName) {
for(j=0; j<arrayName.length; j++) {
if (arrayName[j] == valueName) {
return true;
}
}
}