Form onsubmit: Wert wird nicht mit [ENTER] übergeben
claude
- javascript
Hallo, bin neu hier. Habe eine kleine Suchfunktion in Javascript erstellt. Der Suchbegriff wird in ein Textfeld eingegeben. Beim Klicken auf [go] wird die Suche gestartet. Klappt!
Möchte aber auch das die Suche gestartet wird, wenn der User die Eingabe mit [ENTER] beendet.
Hier der Form-Code:
<form onsubmit="return searcher(this.form.suchtext.value)" action="javascript:return searcher(this.form.suchtext.value)" name="Suchform">
Suchen auf dieser Seite: <input type="text" name="suchtext">
<input type="button" value="go"onclick="searcher(this.form.suchtext.value)">
</form>
Das this.form.suchtext.value wird mit onsubmit nicht übergeben, mit Klick auf [go] aber schon. Warum?
Vielen Dank für Angaben an ein JavaScript Neuling ;-)
Claude
Hallo,
Das this.form.suchtext.value wird mit onsubmit nicht übergeben, mit Klick auf [go] aber schon. Warum?
Weil ein type="button" nicht auf die Enter-Taste reagiert, das tut nur ein type="submit". Wenn du es so änderst, kannst du auch das onsubmit weglassen.
Gruß,
Christian
Hallo,
Danke für die schnelle Antwort. Habe den Typ des buttons geändert (also submit), aber ich bekomme ein Laufzeitfehler, wenn ich das Textfeld mit ENTER quittiere. Der IE-Debugger sagt "Wert von this.form.suchtext ist null oder kein Objekt"
Was muss ich konkret bei 'action' oder 'onsubmit' angeben?
Weil ein type="button" nicht auf die Enter-Taste reagiert, das tut nur ein type="submit". Wenn du es so änderst, kannst du auch das onsubmit weglassen.
Gruß,
Christian
Hi,
Was muss ich konkret bei 'action' oder 'onsubmit' angeben?
bei onsubmit die Funktion, die vor dem Absenden des Formulars ausgeführt werden soll. Bei action die URL des Ziels. Ersteres hast Du getan, letzteres nicht.
Cheatah
OK, vielen Dank für die Hinweise.
Hier das Ergebnis (geht...)
<form action="javascript:searcher(this.suchform.suchtext.value)" name="suchform">
Suchen auf dieser Seite: <input type="text" name="suchtext">
<input type="submit" value="go">
</form>
weil "this" in einer URL(!) definitiv nicht irgend ein Formular ist, das auf einer Seite vorliegt, die mit der URL nicht mal etwas zu tun hat.
Sorry, auf den Rest hab' ich gar nicht geachtet, stimmt natürlich. Ungefähr so dürfte es funktionieren:
<form action="javascript:searcher(document.getElementById('suchtext').value)" name="Suchform">
Suchen auf dieser Seite:
<input id="suchtext" type="text" name="suchtext">
<input type="submit" value="go">
</form>
Wobei Chetah schon recht hat - das ganze ist ein bisschen "abenteuerlich" - vor allem das return. Was willst du wohin returnen ?! Du kannst eigentlich nur eine Funktion ausführen die wiederum irgendetwas tut. Wobei mich auch schon wundert, dass JavaScript-Code tatsächlich in einer form action funktioniert :-)
Gruß,
Christian
Hi,
<form onsubmit="return searcher(this.form.suchtext.value)" action="javascript:return searcher(this.form.suchtext.value)" name="Suchform">
Das this.form.suchtext.value wird mit onsubmit nicht übergeben, mit Klick auf [go] aber schon. Warum?
weil "this" in einer URL(!) definitiv nicht irgend ein Formular ist, das auf einer Seite vorliegt, die mit der URL nicht mal etwas zu tun hat. A propos Formular:
Was zur Hölle ist das eigentlich für ein Formular?! Wie soll das Ding funktionieren?
Cheatah