Formular mit Enter und mit Button senden

floeckchen

Grünschnabel
Guten Abend Allerseits!

Im Rahmen unseres Maturaprojektes gestalten wir eine Schulhomepage, wo auch eine Suchfunktion inkludiert ist. Um den Usern die Benutzung unseres Suchformulars zu vereinfachen, wollen wir es mit Enter und mit einem Button abschicken lassen. Das mit dem Button funktioniert wunderbar, doch mit dem Entern haperts ein wenig.

Hier unser momentaner Stand:

<script type="text/javascript">

function evalKeyForSubmit(event, frm) {

if (event && event.which == 13)
frm.submit.value=escape(frm.suchtext.value)
frm.action='index2.php?section=suchen'
frm.submit();
else
return true;
}

</script>

<form name="textsuche" method="post" action="index2.php?section=suchen">

<input type="text" name="suchtext" class="eingabe" onkeypress="return evalKeyForSubmit(event, this.form);">&nbsp;
<input class="button" type="submit" value="go" name="submit" id="submit">

</form>

Ich hab es schon hundertmal durchgesehen und weiß einfach nicht wo der Fehler liegt. Hierbei muss ich noch erwähnen, dass ich mich mit Javascripts leider nicht gut auskenne und eher mit PHP arbeite. Könnt ihr mir vielleicht sagen wo der Fehler liegt, oder wie man es sonst lösen könnte?

lg
 
Warum lässt du das ganze Javascript nicht einfach weg...das Formular lässt sich auch so wie es ist, ohne JS, auf beiden Wegen abschicken.
 
So habe ich es am Anfang schon gehabt, doch es hat nicht funktioniert. Deswegen wollte ich es jetzt mit einem Javascript probieren.
 
Naja..bei mir funktioniert es auch ohne JS :confused:

Wieauchimmer...so sollte es mit JS gehen:
Code:
<script type="text/javascript">

function evalKeyForSubmit(e) 
{
if (e)
  {
    frm=(window.event)? e.srcElement.form
                      : e.target.form;

    key=(window.event)? e.keyCode 
                      : e.which;

    if(key==13)
      {
        frm.submit();
      }
  }
else
  {
    return true;
  }
}

</script>

<form name="textsuche" method="post" action="index2.php?section=suchen">
  <input type="text" name="suchtext" class="eingabe" onkeypress="return evalKeyForSubmit(event);">&nbsp;
  <input class="button" type="submit" value="go" >
</form>

Beachte zum einen, dass es Unterschiede bei den Eigenschaften des Event-Objektes zwischen IE und anderen Browsern gibt.

Und zum anderen...ich habe die Attribute ID und name aus dem Button entfernt. Diese hatten den Wert "submit"...das verursacht im IE einen Fehler, wenn man die Methode submit() anwenden will.
 
Danke schön, das Script ist wirklich eine große Hilfe! Es funktioniert auch soweit, doch leider wird der im Textfeld eingetragene Text nicht mitgeschickt. Im dazu verlinkten Dokument läuft nämlich eine Suchfunktion, die die Seite nach diesem Begriff absucht, doch die gibt immer 0 Treffer an, obwohl beim Abschicken mit dem Button mehrere Treffer ausgegeben werden. Wahrscheinlich habe ich irgendeine Variable nicht richtig gesetzt, doch ich erkenne leider nicht, ob im Javascript etwas verändert werden muss.
 

Neue Beiträge

Zurück