Thema: Bei Formular mit Link-Submit die Enter-Taste abfangen

Neppo

Grünschnabel
Ich möchte mehrere Formulare auf meine Homepage einbinden, die anstatt einem HTML-Submit-Button einen normalen Text-Link haben. Vor dem senden werden die Felder überprüft, ob diese ausgefüllt sind. Wenn man auf den Link klickt wird alles ordnungsgemäß überprüft und gegebenenfalls "verschickt".
ABER: Wenn jemand die Enter-Taste drückt, dann wird das Formular OHNE überprüfung verschickt. :(

Gibt es eine Lösung, dass entweder beim drücken der Enter-Taste die Überprüfung statt findet oder einfach nichts passiert?

Die Formulare haben folgendes Schema:

<HTML>
<HEAD>

<script language="JavaScript" type="text/javascript">
<!--

function checkAndSend()
{
if (document.nlForm.feld1.value == "")
{
alert ("Du hast Feld1 nicht ausgefüllt!");
}

if (document.nlForm.feld2.value == "")
{
alert ("Du hast Feld2 nicht ausgefüllt!");
}

else
{
document.nlForm.submit();
}

}
//-->
</script>

</HEAD>

<BODY>

<FORM action="weiter.htm" method="post" name="nlForm" onSubmit="return checkit();">

<input type="text" name="feld1">
<input type="text" name="feld2">

</FORM>

<A HREF="javaScript:checkAndSend()" class="nav1">Weiter</A>

</BODY>
</HTML>
 
Danke!
Es funktioniert noch nicht ganz. Beim Enter drücken wird jetzt das Formular überprüft. Falls etwas nicht in Ornung ist, dann kommt die Alert-Box - ABER: Das Formular wird trotzdem verschickt! :mad:
 
Hi,

Du musst in Deiner Funktion boolesche Werte (true/false) zurückgeben, entsprechend,
ob das Formular versendet werden soll (true) oder nicht (false).
Code:
function checkAndSend(){
    if (document.nlForm.feld1.value == ""){
        alert ("Du hast Feld1 nicht ausgefüllt!");
        return false;
    }else if (document.nlForm.feld2.value == ""){
        alert ("Du hast Feld2 nicht ausgefüllt!");
        return false;
    }else{
        document.nlForm.submit();
        return true;
    }
}
Ciao
Quaese
 
Wenn ich auf Enter drücke, dann wird nun alles ornungsgemäß gemacht. Wenn ich auf den Link klicke, dann gelangt man zu einer weißen Seite, auf der False steht (falls ein Feld leer gelassen wurde) ?!
 
Hi,

pass Deinen Link noch an:


&nbsp;&nbsp;<a onclick="checkAndSend();" href="javascript: void(0);" class="nav1">Weiter</a>


Ciao
Quaese
 
Jetzt spielt das Formular verrückt:

Wenn ich das einfüge, kommt keine weiße Seite mit fals mehr - ABER:

Drücke ich ENTER: Wird das Formular verschickt -> man wechselt wieder zur Formular-Seite -> das Formular wird nochmal verschickt

Drücke ich den Link: Wird das Formular verschickt -> man wechselt wieder zur Formular-Seite

Wenn ich im Script das "return true" rausnehme, dann funktioniert das mit dem Enter. Beim Link geschieht das selbe.
 
Hi,

das mit dem mehrfachen Verschicken kann ich hier nicht nachvollziehen.

Den Link solltest Du nochmals anpassen - war mein Fehler.

&nbsp;&nbsp;<a href="javascript: if(checkAndSend() == false){void(0);}else{checkAndSend();};" class="nav1">Weiter</a>


Ciao
Quaese
 
Zurück