Supportnet Computer
Planet of Tech

Supportnet / Forum / Webseiten/HTML

Formular wird zurückgesetzt anstatt abgesendet





Frage

Ich habe ein formular das mich zu einer Url weiterleitet wenn ich sie eingebe. leider funktioniert das aber nur wenn ich den button drücke und wenn ich enter drücke wird das formular zurückgesetzt wie kann ich das ändern das das mit enter auch funktioniert? Kann mir jemand helfen? Hier der Quelltext: <SCRIPT language=JavaScript> function GoToURL(j) { var URLis; URLis = document.URLframe.Dest.value if (URLis == "" || URLis.length <= 0) { j.value = "Login" alert('\Fehler!\n\nFehler.') } else { j.value = "Verbinde..." var location=("http://" + URLis); this.location.href = location; } } </SCRIPT> <p>&nbsp;</p> <p>&nbsp;</p> <FORM name=URLframe> <TABLE align=center border=0 width="269"> <TBODY> <TR> <TD vAlign=center align=middle> <p style="margin-top: 0"> <INPUT maxLength=50 size=33 name=Dest></TD></TR> <TR> <TD align=middle> <p style="margin-top: 13px"> <font color="#FFFFFF"> <INPUT onclick=GoToURL(this) type=button value="Senden" WIDTH="50"></font></p> <p style="margin-top: 13px"> &nbsp;</TD></TR> <tr> <TD align=middle> <p align="left">&nbsp;</TD> </tr> </TBODY></TABLE> </strong> <p style="margin-top: 13px">&nbsp;</p> <STRONG> <p>&nbsp;</p> </FORM> mfG ibg

Antwort 1 von kicia

Hallo ibg,
ich weiß nicht, ob man das so macht, aber funktionieren sollte es so:

Das onclick im input tag raus löschen, statt dessen
<FORM name=URLframe onsubmit="return GoToURL();">


und im script "return false;" einfügen:
function GoToURL()
{
	//...Dein Code...
	return false;
}


Das this, bzw das j aus GoToURL() löschen, denn Dein j.value = "Verbinde..." wird so sowieso nicht funktionieren. Das müsstest Du dann irgendwie anders lösen.
ZB.
document.getElementsByTagName("input")[1].value = "Verbinde...";


Antwort 2 von rfb

zur Reaktion des Formulars auf die Enter-Taste benötigst du zwingend einen Button vom Type:
<input type="submit" value="Absenden">


Fällt dir im Unterschied zu deinem Code etwas auf? 2 Unterschiede:
1. Kleinschreibung derTagnamen (ab XHTML zwingend erforderlich)
2. Attribute in Anführungszeichen (immer erforderlich)

Noch eine Anmerkung zum JavaScript-Teil:
die Verwendung von
location
als Variablennamen ist denkbar unglücklich. Damit überschreibst du das location-Object, das du in der nächsten Zeile nutzen willst. Es fällt dir wahrscheinlich nicht auf, weil dein Browser das Überschreiben - vermutlich - schon als Sprungbefehl interpretiert.
Grundsatz: niemals die Namen bestehender Objekte sowie die reservierten Worte als Variablennamen nutzen!
Wie eine Überprüfung des Formulars beim Absenden sinnvoll eingebunden wird, hat kicia ja schon erwähnt. Dafür gibt es den Event onsubmit. Eigenkonstruktionen über Button mit onclick sind nicht erforderlich, zudem funktionieren diese nur mit aktiviertem JavaScript, ansonsten funktioniert das Formular damit gar nicht.

Antwort 3 von ibg

Danke,
hat funktioniert.

mfg
ibg

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: