Feldinhalte abhängig von Auswahl ändern (Syntax falsch?)
Silke
- javascript
Ich habe mehrere Auswahlfelder. Anhängig von der Produktauswahl erscheint in dem Feld Einheit kg oder m². Funktioniert auch einwandfrei.
Jetzt möchte ich jedoch, wenn der Benutzer sich umentschieden hat und doch kein Produkt möchte, daß in dem Feld Einheit kein Wert drinsteht. Wo ist der Fehler in meinem Quelltext?
Auszug html-Datei:
<td width="150">Produkt</td><td width="7">mm</td><td>Preis</td><td>Einheit</td>
<td><select name="wprod1" onchange="einheit();">
<option></option>
<option>Acryl-massiv</option>
<option>Acryl-Stegplatten</option>
<option>Polystyrol</option>
<option>Dibond</option>
<option>Signicolor</option>
<option>Techn. Kunstst.</option>
<option>Polycarbonat-massiv</option>
<option>Polycarbonat-Stegpl.</option>
<option>HPL-Platten</option>
<option>PVC-massiv</option>
<option>PVC-Schaumplatten</option>
<option>Techn. Folien</option>
<option>Weich-PVC-Folie</option>
<option>Hart-PVC-Folie</option>
</select>
</td>
<td><input type="text" name="milli1" size="5"></td>
<td><input type="text" name="wpreis1"></td>
<td><select name="einheit1" style="width:50">
<option></option>
<option>m²</option>
<option>kg</option>
</select>
</td>
javascript funktion einheit():
function einheit(){
if(document.bericht.wprod1.options[0].selected == true){
document.bericht.einheit1.options[0].selected = true;
}
else if(document.bericht.wprod1.options[0].selected == false){
if(document.bericht.wprod1.options[2].selected == true || document.bericht.wprod1.options[5].selected == true || document.bericht.wprod1.options[6].selected == true || document.bericht.wprod1.options[13].selected == true){
document.bericht.einheit1.options[2].selected = true;
}
else if(document.bericht.wprod1.options[0].selected == false){
document.bericht.einheit1.options[1].selected = true;
}
}
}
Hi Silke,
Nach kurzem Ueberfliegen des Textes wuerde ich sagen, dass es in folgendem Code-Snippet statt:
else if(document.bericht.wprod1.options[0].selected == false){
document.bericht.einheit1.options[1].selected = true;
}
so heissen muesste:
else if(document.bericht.wprod1.options[0].selected == false){
document.bericht.einheit1.options[0].selected = true;
} ^^^
Gruss, Mel
Dadran liegts leider nicht. Ich habe zwei verschiedene Einheiten und wenn der 0te Eintrag nicht ausgewählt ist, soll er ja die 1te Einheit anzeigen.
Gruß, Silke
Hi nochmal,
Hab jetzt mal schnell Dein Script getestet, bei mir geht's in allen mir verfuegbaren Browsern wunderbar (IE 6, Opera 6, fuer Netscape 4.xx solltest Du den beiden Textfeldern noch value und size verpassen ).
Wenn ich im ersten Select wieder zurueck auf nix gehe, dann springt auch die zweite Selectbox auf leer, das wolltest Du doch?
Gruss, Mel
Ja, genau das wollte ich. Aber wieso funktioniert das dann in meinem Browser nicht??? (IE 5.5)
Eigenartig, hab den Browser leider nicht hier zum testen.
Eine alternative Syntax fuer das javascript waere:
-------------------snip---------------
<script language="Javascript1.2">
function einheit(){
if(document.bericht.wprod1.selectedIndex == 0){
document.bericht.einheit1.selectedIndex = 0;
}
else if(document.bericht.wprod1.selectedIndex != 0){
if(document.bericht.wprod1.selectedIndex == 2 || document.bericht.wprod1.selectedIndex == 5 || document.bericht.wprod1.selectedIndex == 6 || document.bericht.wprod1.selectedIndex == 13){
document.bericht.einheit1.selectedIndex = 2;
}
else {
document.bericht.einheit1.selectedIndex = 1;
}
}
}
</script>
-------------------snip---------------
Wenn das auch nicht geht - keine Ahnung.
Viel Glueck, Mel
Vielen lieben Dank! Deine Alternative funktioniert!!!
Große Umarmung, Silke ;-)