• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Vokabeltrainer

Status
Für weitere Antworten geschlossen.

Anonymous

Neues Mitglied
Weiß jemand was hier falsch ist?
Wenn ihr keinen Fehler findet, kopiert euch den Code doch mal und probiert ihn aus!
Code:
<script language="JavaScript">
<!--


function vokabeln() {

var deutsch = document.getElementById("Deutsch").value;
var englisch = document.getElementById("Englisch").value;

var zahl = Math.random() * 2
var zahl2 = Math.round(zahl)
var zahlende = "wort" + zahl2
var loesung = zahlende + "loe"

var wort1 = "Ja"
var wort2 = "Nein"

var wort1loe = "Yes"
var wort2loe = "No"

if(englisch == loesung)
{
alert("Richtig!")
}
else
{
alert("Falsch!")
}
}
function neueZahl()
{
var ausgabe1 = "Ja"
var ausgabe2 = "Nein"

var zahl = Math.random() * 2
var zahl2 = Math.round(zahl)
var zahlende = "ausgabe" + zahl2
document.getElementById("Deutsch").value = ausgabe1 && ausgabe2


}
//-->
</script>
<noscript></noscript>
Was heißt <input type="text" id="Deutsch" value="" readonly></input> auf Englisch? 
 Alle Wörter müssen am Anfang grossgeschrieben werden! (Gross- und Kleinschreibung wird beachtet!)  <input type="text" id="Englisch" value="Lösung"></input> <input type="button" value="Neues Wort" onClick="neueZahl()"></input> <input type="button" value="Prüfen" onClick="vokabeln()"></input>
MfG l18111
 
Werbung:
Schau Dir doch einfach mal den Inhalt der Variable loesung an. Da steht dann z.B. "wort2loe" drinne, aber nicht die gewollte Uebersetzung. Deswegen liefert die if-Bedingung (fast) immer false zurueck.
JavaScript kann afaik keine variablen Variablen wie PHP und was du hier anscheinend benutzen willst.

Das Problem liegt also in dem Codeteil:
Code:
var zahlende = "wort" + zahl2
var loesung = zahlende + "loe"

...

if(englisch == loesung)
...

Ich wuerde Dir vorschlagen, dass Du die Worte und Ihre Uebersetzungen in zwei Arrays speicherst. Dann kannst Du einfach auf beide Werte zugreifen.

Und was Du hier vorhast verstehe ich nicht:
Code:
document.getElementById("Deutsch").value = ausgabe1 && ausgabe2
 
Werbung:
Ja, klar! Danke! :D
Mit
Code:
document.getElementById("Deutsch").value = ausgabe1 && ausgabe2
wird, wenn man auf den Button "Neues Wort" klickt wird entweder ausgabe1 oder ausgabe2 ins Textfeld geschrieben. Dann könnte ich eigentlich auch
Code:
var zahl = Math.random() * 2 
var zahl2 = Math.round(zahl) 
var zahlende = "ausgabe" + zahl2
weglassen...
MfG l18111

(100.Post! :D )
 
Was passieren soll ist klar. Der &&-Operator fuehrt aber eigentlich eine logische UND-Verknuepfung mit zwei boolschen Werten durch. ausgabe1 und ausgabe2 sind Strings, weswegen der Operator da semantisch keinen Sinn macht. So wie es aussieht, kommt dabei dann immer ausgabe2 raus...

Deswegen verstehe ich nicht, dass der Code ueberhaupt laeuft und keinen Fehler ausgibt.
 
Werbung:
Da ich gerade ziemlich viel zu tun habe kann ich Dir den kompletten Code leider nicht posten. Da muesste ich mich auch erst einarbeiten.

Ausserdem wuerdest Du dann ja nix lernen... :wink:
 
Ok, hab den Code ein bisschen verbessert, doch der tut es immer noch nicht:
Code:
<script language="JavaScript">
<!--
function vokabeln()
{
if(!deutsch)
{
document.getElementById("Status").value="Bitte drücken sie erst auf 'Neues Wort'!";
}
else
{
var deutsch = document.getElementById("Deutsch").value;
var englisch = document.getElementById("Englisch").value;

var vokabel = Array();
vokabel["Ja"] = ["Yes"];
vokabel["Nein"] = ["No"];
if(vokabel[deutsch] == [englisch])
{
document.getElementById("Status").value="Richtig!";
}
else
{
document.getElementById("Status").value="Leider falsch.";
}
}
function neuesWort()
{
var wort1 = "Ja"
var wort2 = "Nein"

var zahl1 = Math.random() * 2 //Anzahl der Vokabeln
var zahl2 = Math.round(zahl1)

document.getElementById("Deutsch").value="wort"+zahl2;

function leer1()
{
document.getElementById("Deutsch").value="";
}
function leer2()
{
document.getElementById("Englisch").value="";
}
function autoDel()
{
leer1()
leer2()
}
}
}
//-->
</script>
<noscript></noscript>
Was heisst <input type="text" id="Deutsch" size="4" maxlenght="4" onClick="leer1()" readonly></input> auf Englisch?

Lösung: <input type="text" id="Englisch" size="3" maxlenght="3" onClick="leer2()"></input>

Status:<input type="text" id="Status" size="24" readonly></input>

<center><input type="button" value="Prüfen" onClick="vokabeln()"></input><input type="button" value="Neues Wort" onClick="neuesWort()"></input>

</center><center><input type="button" value="Reset" onClick="autoDel()"></input></center>
 
Werbung:
Deine geschweiften Klammern um die Funktionsrümpfe passen nicht. Vor function neuesWort() und function leer1() muss jeweils eine zugehen, am Ende müssen dann zwei weg. Wenn Du den Code mal richtig einrückst, dann siehst Du es gleich.
 
Werbung:
weit wann verschachtelt man funktionen ;ugl
bevor ne neue funktion beginnt, muss die alte mit } abgeschl werden...
so würde das aussehen:
Code:
<script language="JavaScript"> 
<!-- 
function vokabeln() { 
	if(!deutsch) { 
		document.getElementById("Status").value="Bitte drücken sie erst auf 'Neues Wort'!"; 
	} else { 
		var deutsch = document.getElementById("Deutsch").value; 
		var englisch = document.getElementById("Englisch").value; 
		
		var vokabel = Array(); 
		vokabel["Ja"] = ["Yes"]; 
		vokabel["Nein"] = ["No"]; 
		if(vokabel[deutsch] == [englisch]) { 
			document.getElementById("Status").value="Richtig!"; 
		} else { 
			document.getElementById("Status").value="Leider falsch."; 
		}
	}
} 
function neuesWort() { 
	var wort1 = "Ja" 
	var wort2 = "Nein" 
	
	var zahl1 = Math.random() * 2 //Anzahl der Vokabeln 
	var zahl2 = Math.round(zahl1) 
	
	document.getElementById("Deutsch").value="wort"+zahl2; 
}
	
function leer1() { 
	document.getElementById("Deutsch").value=""; 
} 
function leer2() { 
	document.getElementById("Englisch").value=""; 
} 
function autoDel() { 
	leer1() 
	leer2() 
} 
//--> 
</script> 
<noscript></noscript> 
Was heisst <input type="text" id="Deutsch" size="4" maxlenght="4" onClick="leer1()" readonly></input> auf Englisch? 

L&ouml;sung: <input type="text" id="Englisch" size="3" maxlenght="3" onClick="leer2()"></input>
 
Status:<input type="text" id="Status" size="24" readonly></input>
 
<center><input type="button" value="Pr&uuml;fen" onClick="vokabeln()"></input><input type="button" value="Neues Wort" onClick="neuesWort()"></input> 

</center><center><input type="button" value="Reset" onClick="autoDel()"></input></center>
ä, ö und ü werden normalerweise &auml;, &ouml; und &uuml; geschrieben...

mfg, fätzminator
 
Werbung:
Ich mach mal ´nen neuen Thread auf...

<--- Mod-Edit: Reopen | Kopie des Neuen Threads --->

Hi all User,
Weiss jemand von euch was bei diesem Script der Fehler ist? Es wird immer nur "wort1" o. "wort2" ausgegeben, doch es sollte eigentlich "Ja" o. "Nein" ausgegeben werden:
Code:
<script language="JavaScript"> 
<!-- 
function vokabeln() { 
   if(!deutsch) { 
      document.getElementById("Status").value="Bitte drücken sie erst auf 'Neues Wort'!"; 
   } else { 
      var deutsch = document.getElementById("Deutsch").value; 
      var englisch = document.getElementById("Englisch").value; 
       
      var vokabel = Array(); 
      vokabel["Ja"] = ["Yes"]; 
      vokabel["Nein"] = ["No"]; 
      if(vokabel[deutsch] == [englisch]) { 
         document.getElementById("Status").value="Richtig!"; 
      } else { 
         document.getElementById("Status").value="Leider falsch."; 
      } 
   } 
} 
function neuesWort() { 
   var wort1 = "Ja" 
   var wort2 = "Nein" 
    
   var zahl1 = Math.random() * 2 //Anzahl der Vokabeln 
   var zahl2 = Math.round(zahl1) 
    
   document.getElementById("Deutsch").value="wort"+zahl2; 
} 
    
function leer1() { 
   document.getElementById("Deutsch").value=""; 
} 
function leer2() { 
   document.getElementById("Englisch").value=""; 
} 
function autoDel() { 
   leer1() 
   leer2() 
} 
//--> 
</script> 
<noscript></noscript> 
Was heisst <input type="text" id="Deutsch" size="4" maxlenght="4" onClick="leer1()" readonly></input> auf Englisch? 

L&ouml;sung: <input type="text" id="Englisch" size="3" maxlenght="3" onClick="leer2()"></input>
 
Status:<input type="text" id="Status" size="24" readonly></input>
 
<center><input type="button" value="Pr&uuml;fen" onClick="vokabeln()"></input><input type="button" value="Neues Wort" onClick="neuesWort()"></input> 

</center><center><input type="button" value="Reset" onClick="autoDel()"></input></center>
MfG l18111
 
Werbung:
Oh mann, das ist ja voll traurig! Damit das mal ein Ende hat:
Code:
<script language="JavaScript">
<!--
var vokabel = Array();
vokabel["Ja"] = ["Yes"];
vokabel["Nein"] = ["No"];

function set(id, value) { document.getElementById(id).value = value; }
function get(id) { return document.getElementById(id).value; }

function test() {
   var deutsch = get("Deutsch");
   if(!deutsch) {
      set("Status", "Bitte drücken sie erst auf 'Neues Wort'!");
   } else {
      var englisch = get("Englisch");
       
      if(vokabel[deutsch] == englisch) {
         set("Status", "Richtig!");
      } else {
         set("Status", "Leider falsch.");
      }
   }
}
function neuesWort() {
   leer2();
   var counter = 0;
   var de = new Array();
   for (i in vokabel) {
   	de[counter] = i;
   	counter++;
   }
   
   var rand = Math.floor(Math.random() * counter);
   document.getElementById("Deutsch").value = de[rand];
}
   
function leer1() {
   set("Deutsch", "");
}
function leer2() {
   set("Englisch", "");
}
function autoDel() {
   leer1()
   leer2()
}
//-->
</script>

Was heisst <input type="text" id="Deutsch" size="4" maxlenght="4" onClick="leer1()" readonly /> auf Englisch?


L&ouml;sung: <input type="text" id="Englisch" size="3" maxlenght="3" onClick="leer2()" />


Status:<input type="text" id="Status" size="24" readonly />


<center>
<input type="button" value="Pr&uuml;fen" onClick="test()" />
<input type="button" value="Neues Wort" onClick="neuesWort()" />


</center>
<center>
<input type="button" value="Reset" onClick="autoDel()" />
</center>

Geht schöner, aber mit der Basis hab ich wenig Lust drauf...
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben