Checkbox als Variable setzen
P@TR!CK
- javascript
Hallo!
Wir haben in Informatik als Hausaufgabe aufbekommen, eine Abfrage mit window.promt zu erstellen. Dies habe ich - ihr könnt es euch ja mal angucken:
<script language="JavaScript">
<!--
var anzahl;
var satz;
var fahrzeug = window.prompt("Autos oder Motorräder? Schreibe a für Autos und m für Motorräder!", "");
var anzahl = window.prompt("Wie viele Fahrzeuge?", "");
if (fahrzeug == "Autos") {räder=anzahl*4};
if (fahrzeug == "autos") {räder=anzahl*4};
if (fahrzeug == "A") {räder=anzahl*4};
if (fahrzeug == "a") {räder=anzahl*4};
if (fahrzeug == "Motorräder") {räder=anzahl*2};
if (fahrzeug == "motorräder") {räder=anzahl*2};
if (fahrzeug == "M") {räder=anzahl*2};
if (fahrzeug == "m") {räder=anzahl*2};
if (fahrzeug == "Autos") {fahrzeug_ausgabe="Autos"};
if (fahrzeug == "autos") {fahrzeug_ausgabe="Autos"};
if (fahrzeug == "A") {fahrzeug_ausgabe="Autos"};
if (fahrzeug == "a") {fahrzeug_ausgabe="Autos"};
if (fahrzeug == "Motorräder") {fahrzeug_ausgabe="Motorräder"};
if (fahrzeug == "motorräder") {fahrzeug_ausgabe="Motorräder"};
if (fahrzeug == "M") {fahrzeug_ausgabe="Motorräder"};
if (fahrzeug == "m") {fahrzeug_ausgabe="Motorräder"};
satz=anzahl+" "+fahrzeug_ausgabe+" haben "+räder+" Räder.";
document.write(satz);
document.write("</font>");
//-->
</script>
Nun habe ich mir gedacht, dass es ja Leute gibt, die sich vertippen (ist ja auch menschlich). Dann könnte man dem Besucher ja zwei Radiobuttons zur Auswahl geben - das eine für Autos, das andere für Motorräder -, dann klickt der Besucher eins an, wird dann aufgefordert die Zahl einzugeben (also die Anzahl) und dann erscheint der Text. Nun habe ich aber keine Ahnung wie ich das mit Radiobuttons hinkriegen soll.
Könnt ihr mir helfen??
LG Patrick
Hi!
Könnt ihr mir helfen??
http://de.selfhtml.org/javascript/objekte/forms.htm@title=Klar!
[latex]Mae govannen![/latex]
<script language="JavaScript">
Hier fehlt das erforderliche "type"-Attribut mit dem entsprechenden mime-typ, das "language"-Attribut kann gelöscht werden
<!--
unnötig
var anzahl;
[...]
~~~javascript
var anzahl = window.prompt("Wie viele Fahrzeuge?", "");
Hier kannst du entweder die erste Zeile weglassen oder bei der zweiten das var entfernen.
>~~~javascript
if (fahrzeug == "Autos") {räder=anzahl*4};
> if (fahrzeug == "autos") {räder=anzahl*4};
> if (fahrzeug == "A") {räder=anzahl*4};
> if (fahrzeug == "a") {räder=anzahl*4};
> if (fahrzeug == "Motorräder") {räder=anzahl*2};
> if (fahrzeug == "motorräder") {räder=anzahl*2};
> if (fahrzeug == "M") {räder=anzahl*2};
> if (fahrzeug == "m") {räder=anzahl*2};
> if (fahrzeug == "Autos") {fahrzeug_ausgabe="Autos"};
> if (fahrzeug == "autos") {fahrzeug_ausgabe="Autos"};
> if (fahrzeug == "A") {fahrzeug_ausgabe="Autos"};
> if (fahrzeug == "a") {fahrzeug_ausgabe="Autos"};
> if (fahrzeug == "Motorräder") {fahrzeug_ausgabe="Motorräder"};
> if (fahrzeug == "motorräder") {fahrzeug_ausgabe="Motorräder"};
> if (fahrzeug == "M") {fahrzeug_ausgabe="Motorräder"};
> if (fahrzeug == "m") {fahrzeug_ausgabe="Motorräder"};
Womit wir gelernt haben: Es gibt nicht nur eine div-Suppe, sondern auch eine if-Suppe
document.write("</font>");
11. Gebot: Du sollt nicht verwenden HTML-Elemente, die als "depreached" markiert sind. Nutze die http://de.selfhtml.org/css/index.htm@title=Macht
//-->
unnötig.
Nun habe ich mir gedacht, dass es ja Leute gibt, die sich vertippen (ist ja auch menschlich). Dann könnte man dem Besucher ja zwei Radiobuttons zur Auswahl geben - das eine für Autos, das andere für Motorräder -, dann klickt der Besucher eins an, wird dann aufgefordert die Zahl einzugeben (also die Anzahl) und dann erscheint der Text. Nun habe ich aber keine Ahnung wie ich das mit Radiobuttons hinkriegen soll.
Eine andere Alternative wäre es, die Eingabe entsprechend vorzubehandeln, z. B auf den Anfangsbuchstaben reduzieren (und dabei direkt die if-Suppe durch etwas sinnvolles zu ersetzen)
Beispiel:
var satz, raeder, fahrzeug_ausgabe;
var fahrzeug = window.prompt("Autos oder Motorräder? Schreibe a für Autos und m für Motorräder!", "");
var anzahl = window.prompt("Wie viele Fahrzeuge?", "");
[link:http://de.selfhtml.org/javascript/sprache/bedingt.htm#switch@title=switch](fahrzeug.[link:http://de.selfhtml.org/javascript/objekte/string.htm#substr@title=substr](0,1).[link:http://de.selfhtml.org/javascript/objekte/string.htm#to_lower_case@title=toLowerCase]()) { // Übergibt ersten Buchstaben von variable fahrzeug , klein
case "a":
raeder = anzahl * 4;
fahrzeug_ausgabe = "Autos";
break;
case "m":
raeder = anzahl * 2;
fahrzeug_ausgabe = "Motorräder";
break;
default:
raeder = "eine unbekannte Anzahl";
fahrzeug_ausgabe = "unbekannte(s) Fahrzeug(e) [Eingabe:" + fahrzeug + "]";
break;
}
satz=anzahl+" "+fahrzeug_ausgabe+" haben "+raeder+" Räder.";
document.write(satz);
Damit hast du auch direkt eine Fehlerbehandlung für unbekannte Eingaben. Das Beispiel kann man natürlich noch entsprechend anpassen (z.B. die ersten zwei Buchstaben statt dem Ersten) und noch erweitern, z.B. daß geprüft wird, ob der Typ von anzahl numerisch ist ("hallo" * 4 wäre sinnfrei)
Cü,
Kai
Grundlage für Zitat #1426.
[latex]Mae govannen![/latex]
PEE.ESS.:
{räder=anzahl*4};
Vermeide Sonderzeichen in den Namen von Variablen.
Cü,
Kai
Hallo,
Womit wir gelernt haben: Es gibt nicht nur eine div-Suppe, sondern auch eine if-Suppe
;-)
- Gebot: Du sollt nicht verwenden HTML-Elemente, die als "depreached" markiert sind.
<google>Did you mean: deprecated?</google>
*scnr*
Martin
Hi,
»» 11. Gebot: Du sollt nicht verwenden HTML-Elemente, die als "depreached" markiert sind.
<google>Did you mean: deprecated?</google>
so sehr wie wir hier ständig predigen müssen, keine solchen Elemente zu verwenden, finde ich "depreached" irgendwie passend.
Cheatah, SCNR2
Ok, danke!
Kann ich denn auch noch im ersten window.prompt festlegen, dass man nur "a" und "m" eingeben kann?
Und, dass man im zweiten window.prompt nur Zahlen eingeben kann?
LG Patrick
Mahlzeit P@TR!CK,
Kann ich denn auch noch im ersten window.prompt festlegen, dass man nur "a" und "m" eingeben kann?
Nein, aber Du kannst nach der Eingabe prüfen, ob der Benutzer eines der von Dir gewünschten Zeichen eingegeben hat - und wenn nicht, dann lässt Du ihn die Eingabe einfach wiederholen.
Und, dass man im zweiten window.prompt nur Zahlen eingeben kann?
s.o.
MfG,
EKKi