JavaScript : vergleichen usw

hab1cht

Erfahrenes Mitglied
Hallo,
ich habe gerade mit JavaScript angefangen und schon kommen die ersten Probleme ;) ....
Also ich habe ein Formular mit 2 Textfeldern, in die Felder gibt man etwas ein, dann werden sie überprüft ob sie gleich sind und vorher wird noch geprüft ob beide Felder ausgefüllt sind..
Also soweit die Theorie, jetzt zum Code:
Code:
<script>

function vergleiche(a, b){
	return (a == b) ? true : alert("Die Werte passen nicht zusammen!");
	}


function ausgefuellt(){ 
if(document.forms['formular'].elements['texta'].value == '' ||
document.forms['formular'].elements['textb'].value == ''){
	alert("Es wurden nicht alle Felder ausgefüllt!");
	return false;
	}
}

</script>


<form name = "formular" action = "vergleichen.htm" method = "post" onSubmit = "return ausgefüllt()">
<input type = "text" name = "texta" value = "">
<input type = "text" name = "textb" value = "">
<input type = "submit" value = "Los!" name = "button1">
</form>

<script>


if(ausgefuellt()){
var texta = document.forms['formular'].elements['texta'].value;
var textb = document.forms['formular'].elements['textb'].value;


if(vergleiche(texta, textb))
	document.write("Die Werte " + texta ". und" + textb ". stimmen überein!");
}
</script>

Die Datei heist vergleichen.htm

So und momentan wird gar nichts gemacht, kA warum..
Bitte helft mir.

Vielen Dank im Voraus für eure Hilfe.

MfG hab1cht
 
Hi.

Dein Skript Code wird sofort beim Laden der Seite ausgeführt. Natürlich passiert da nichts denn es ist ja auch nix ausgefüllt.

Du mußt deine Funktione erst aufrufen wenn der Benutzer auf einen Button klickt, zum Beispiel in einem onclick event Handler.

Das Skript wird übrigens nur clientseitig / im Browser ausgeführt und die Werte können nicht mit der Post Methode an das Skript auf dem Server übergeben und bearbeitet werden.

Wenn du ein Formular an eine Seite mit Post schickst muß auf dem Server die Verarbeitung (z.B. mit PHP, Python, Perl, ASP etc.) erfolgen.

Was du tun kannst ist die Get Methode zu verwenden und dann mit Javascript die URL zu verarbeiten.

Gruß
 
So habe es jetzt umgeändert:
Code:
<script>

function vergleiche(a, b){
	return (a == b) ? alert("Die Werte stimmen überein! Der Wert lautete \"" + a + "\"") : alert("Die Werte passen nicht zusammen! Die Werte lauteten \"" + a +"\" und \"" + b + "\"");
	}


function ausgefuellt(){ 
if(document.forms['formular'].elements['texta'].value == "" ||
document.forms['formular'].elements['textb'].value == ""){
	alert("Es wurden nicht alle Felder ausgefüllt!");
	return false;
	}
}

</script>



<form name = "formular" method = "post" >
<input type = "text" name = "texta" value = "">
<input type = "text" name = "textb" value = "">
<input type = "submit" value = "Los!" name = "button1" onClick = "return ausgefuellt(), vergleiche(form.texta.value, form.textb.value)">
</form>

Nur die Überprüfung ob alle Felder ausgefüllt wurden bringt nichts, da danach trotzdem vergleiche() ausgeführt wird.
Kann man das noch irgendiwe verändern?

MfG hab1cht
 
Hallo,

du kannst doch abhängig des Rückgabewerts von ausgefuellt() die Funktion vergleiche() ausführen:

HTML:
function ausgefuellt(){ 
if(document.forms['formular'].elements['texta'].value == "" ||
document.forms['formular'].elements['textb'].value == ""){
	alert("Es wurden nicht alle Felder ausgefüllt!");
	return false;
	}
else {
       return true;
       }
}

</script>



<form name = "formular" method = "post" >
<input type = "text" name = "texta" value = "">
<input type = "text" name = "textb" value = "">
<input type = "submit" value = "Los!" name = "button1" onClick = "if(ausgefuellt()) { vergleiche(form.texta.value, form.textb.value); }">
</form>
 

Neue Beiträge

Zurück