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

Funktion nach Enter

Sunnyboy

Mitglied
Hallo zusammen

Ich habe folgenden Code:
HTML:
<script type="text/javascript">
function weiterleitung() {
location.href = "https://www.domain.de/" + document.form.eingabefeld.value;
}
</script>
<form name="form">
  <input type="text" name="eingabefeld">
  <input type="button" value="goforit" onClick="weiterleitung()">
</form>

Ich möchte diesen Code so ändern, dass es keinen button mehr braucht, sondern durch drücken von Enter die Funktion aufgerufen wird. Momentane "location" ist nun mein Seitenpfad plus die Get-Übergabe vom Textfeld. Ziel wäre jedoch domain.de/ValueVomEingabefeld.
Ich kam bisher auf keine Lösung und auch google konnte mir nicht helfen.

Ich hoffe jemand von euch hat eine Idee.
Vielen Dank
Sunnyboy
 
Werbung:
Code:
window.onkeydown = window.onkeypress = function(event) { console.log('onclick', event); };

guck doch selber. ;)
 
Vielen Dank für deine Hilfe.
Ich habe nun folgendes gemacht, das jedoch nur funktioniert, wenn ein alert() in der Funktion steht. Warum ist das so?
HTML:
<script type="text/javascript">
        function checkKey(e) {
            e = e || window.event;
            if (e.keyCode == '13') {
                window.location.href = "http://www.domain.de/" + document.form.eingabefeld.value;
                alert();
            }
            else {}
        }
    </script>
    <form name="form">
        <input type="text" name="eingabefeld" onKeyDown="checkKey(event)">
    </form>
 
Werbung:
Ich würde dir empfehlen die Funktion weiterleiten() aus deinem ursprünglichen Quellcode einfach ins onsubmit-Attribut des <form>-Tags zu schreiben. Da brauchst Du auch nicht den ganzen Tasten-Erkennungskram einbauen.
 
Ja schon, dass ist eine gute Idee. Aber auch da geht es nicht an den richtigen Ort, wenn kein alert() in der Funktion ist.

HTML:
<script type="text/javascript">
function weiterleitung() {
location.href = "https://www.domain.de/" + document.form.eingabefeld.value;
alert();
}
</script>
<form name="form" onsubmit="weiterleitung()">
  <input type="text" name="eingabefeld">
  <input type="submit" value="goforit" style="display:none;">
</form>

Mit alert() komme ich wie gewünscht nach "domain.de/InputValue". Ohne aber nach "Basis-URI" + "?eingabefeld=InputValue".
 
Nicht ganz richtig:

HTML:
<script type="text/javascript">
function weiterleitung() {
location.href = "https://www.domain.de/" + document.form.eingabefeld.value;
return false;
}
</script>
<form name="form" onsubmit="return weiterleitung();">
  <input type="text" name="eingabefeld">
  <input type="submit" value="goforit" style="display:none;">
</form>

Müsste eigentlich funktionieren. Stell außerdem sicher, dass dein HTML-Dokument valide ist.
 
Werbung:
Achso, das "return false;" hat gefehlt. Nun geht es super!
Was passiert eigentlich, wenn dieses return false fehlt? Wird die Funktion gar nicht ausgeführt?
 
Wenn Du ein Formular abschickst, egal ob per Enter in einem Formularfeld oder per Button-Klick, schickt der Browser das Formular an die angegebene Adresse ab. Der onsubmit-Eventhandler ermöglicht es dieses Verhalten zu beeinflussen oder auch zu unterbinden. Mit dem Wert false wird dem Browser gesagt, dass er das Formular nicht tatsächlich abschicken soll. Bei deinem ersten Versuch ohne return-Wert hat der Browser also erst die JavaScript-Funktion ausgeführt, hätte weitergeleitet, wurde aber von der eigenen Formularverarbeitung aufgehalten, da diese ja lediglich das Formular abschicken sollte. Dieses Verhalten verhinderst Du nun mit dem return-Wert.
 
Zurück
Oben