• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Javascript Formular Problem

lukme

New member
Hallo ,

ich habe ein Problem mit meinem Formular Code, der sich aus HTML und JS zusammensetzt. Man soll oben die Länge und Breite in cm angeben. Nach dieser Länge und Breite soll dann in einer Liste darunter resultierend eine Welle ausgewählt ausgewählt/gecheckt werden. Nur leider will es nicht funktionieren.
Hier der Code.
Code:
Code:
Länge [cm]:<input type="text" id="L" name="laenge" style="width:100px; " maxlength="4" onkeyup="nurZahlen(this)";>

Breite [cm]: <input type="text" id="B" maxlength="3" style="width:100px;" name="breite" onkeyup="nurZahlen(this)";>
<input type=button value="Welle anzeigen" onclick="Welle();">
<h4>Wellenauslegung</h4>
<input type="Radio" name="welle" id="alu110" />Wickelwelle: Alu, Ø 110mm
<br>
<input type="Radio" name="welle" id="alu154" /> Wickelwelle: Alu, Ø 154mm
<br>

<input type="Radio" name="welle"  id="edel154">Wickelwelle: Edelstahl, Ø 154mm


<script type="text/javascript">
function nurZahlen(el) 
{ 
  var val = el.value.replace(/[^\.^,\d]/g, ''); 
  el.value = val; 
}  
</script>

<script language="javascript" type="text/javascript">

function Welle(){ if (document.getElementById('L').value<=800)&&(document.getElementById('B').value<=500){(document.getElementById('alu154').checked);}
    else if {(document.getElementById('L').value>=900) &&(document.getElementById('B').value>=500){(document.getElementById('edel154').checked);}
        else {(document.getElementById('edel').checked);} }
    }
    </script>
Bei einer Länge <=800 & Breite <=500 sollte alu154 der Radiobuttons gechecked werden - Länge >900 & Breite>500 soll edel154 gechecked werden. Sonst soll alu110 gewählt werden.
Doch leider will es nicht funktionieren und ich komme mit meinem Wissen hier auch nicht weiter:(
Ich hoffe ihr könnt mir helfen.

Gruß

Lukme
 
Was heißt "nicht funktionieren"? Kommt in der Entwicklerkonsole (F12) eine Fehlermeldung oder tut es nicht was du willst?
 
Du musst der .checked Eigenschaft schon was zuweisen, wenn du willst, das sich da was ändert...

Code:
document.getElementById('alu154').checked = true;

PS: das language-Attribut ist veraltet -> weg damit
PPS: du solltest dir dringend angewöhnen, deinen Code sauber zu formatieren.
 
Immer wieder unglaublich, dass heutzutage das language-Attribut immer wieder Verwendung findet....
Frage mich wo die ganzen Leute das her haben.
 
Im Netz ist hald extrem viel veraltetes Zeug zu JS unterwegs.

- - - Aktualisiert - - -

Du musst das nicht weglassen... Was hast du denn mit meinem Hinweis probiert?
 
Hey, du hast mich nochmal motiviert. Jedoch funktioniert deine Idee nicht. Sind meine Bedingungen denn oben richtig definiert?
HTML:
<script type="text/javascript">

function Welle(){ if (document.getElementById('L').value<=800)&&(document.getElementById('B').value<=500){(document.getElementById('alu154').checked = true);}
    else if {(document.getElementById('L').value>=900) &&(document.getElementById('B').value>=500){(document.getElementById('edel154').checked = true);}
        else {(document.getElementById('edel').checked = true);} }
    }
    </script>
Besten Dank!
 
Zuletzt bearbeitet:
Du musst ganz ganz dringend genauer arbeiten, Lukme!! Und gewöhn dir bitte strukturierten Code an, sonst wird das nichts.
Ich hab es mal so hingebogen, dass es einigermaßen läuft. Was mir fehlt ist das Objekt mit der ID "edel". Das musst du ergänzen.
HTML:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
</head>
<body>

<script>

function Welle() {
	if (document.getElementById('L').value <= 800 && document.getElementById('B').value <= 500){
		document.getElementById('alu154').checked = true;
	}
	else if (document.getElementById('L').value >= 900 && document.getElementById('B').value >= 500){
		document.getElementById('edel154').checked = true;
	}
	else {
		document.getElementById('edel').checked = true;
	}
}
</script>

Länge [cm]: <input type="text" id="L" name="laenge" style="width:100px;" maxlength="4">
Breite [cm]: <input type="text" id="B" maxlength="3" style="width:100px;" name="breite">
<input type="button" value="Welle anzeigen" onclick="Welle();">
<h4>Wellenauslegung</h4>
<input type="Radio" name="welle" id="alu110">Wickelwelle: Alu, Ø 110mm
<br>
<input type="Radio" name="welle" id="alu154">Wickelwelle: Alu, Ø 154mm
<br>
<input type="Radio" name="welle"  id="edel154">Wickelwelle: Edelstahl, Ø 154mm

</body>
</html>

- - - Aktualisiert - - -

Noch ein Hinweis: Falls es sich hierbei um das selbe Projekt wie in http://forum.jswelt.de/javascript/59418-berechnungen-ausgaben-formularen.html handelt, hast du ja jQuery am Start. Dann könntest du den Code hier radikal kürzen, denn gerade für diese document.getElementById() Geschichten ist jQuery wunderherrlich geeignet.
 
Vielen vielen Dank! Ich bin noch ziemlich neu auf dem Gebiet, bin noch am lernen :) ID "edel" sollte ID "alu110" sein. Es handelt sich um das selbe Projekt wie im anderen Thread.

Vielen Dank!
 
Solche Syntaxfehler findet man sehr leicht mit der Fehlerkonsole. Einfach immer mal wieder einen Blick riskieren - v.A. wenn irgendwas nicht funktioniert.

PS: noch ein kleiner Tipp. Wie bei Variablennamen solltest du möglichs aussagekräftige IDs vergeben. Ein "L" kann hald in deinem Kopf z.B. auch gerne mal irgendwas anderes mit "L" am Anfang heißen und schon hast du ein Problem. Die fünf Zeichen mehr zu tippen für "Laenge" ist es wert.
 
Zurück
Oben