Formulareingabe
Ingrid
- javascript
0 Cheatah0 Ingrid0 Antje Hofmann0 Ingrid
0 Tom0 Frank Bergermann
Hallo
Ich habe die Frage zwar schon mal gestellt, aber bisher hat noch kein Tip geholfen.
Also, ich habe ein Formular mit einem Texteingabefeld. Dazu habe ich auch noch einen
Button um den Text abzuschicken.
Wenn ich nun was eingebe und den Button klicke, funktionert alles so wie's sollte.
Wenn ich aber nun was eingebe und 'return' druecke, funktioniert es nicht, bzw. es laeuft
irgendwas anderes ab.
Wie kann ich das 'return' sperren, sodass man den Button brauchen muss?
Oder wie mach ich's, dass das 'return' richtig funkioniert?
Gruss
Ingrid
Hi,
Also, ich habe ein Formular mit einem Texteingabefeld. Dazu habe ich auch noch einen
Button um den Text abzuschicken.
_was_ für ein Button ist es genau? HTML-Code?
Wenn ich aber nun was eingebe und 'return' druecke, funktioniert es nicht, bzw. es laeuft
irgendwas anderes ab.
Was zur Hölle ist "es"? Sorry, aber wir können nicht hellsehen.
Wie kann ich das 'return' sperren, sodass man den Button brauchen muss?
Ich bin nicht sicher, was Dein Problem ist, aber dies ist sicher nicht der beste Weg, es zu lösen.
Oder wie mach ich's, dass das 'return' richtig funkioniert?
Erst mal sagen, was Du überhaupt tust - und was genau nicht funktioniert.
Cheatah
Hallo
Also, nochmal etwas genauer.
Ich bastle gerade an einem MapServer rum.
Dabei habe ich ein Formular gemacht, wo man eine Massstabszahl eingeben kann.
Wenn man die Zahl eingegeben hat und auf den Button klickt, dann startet eine
Funktion, die mir die Karte im gewünschten Massstab darstellt.
Wenn ich nun aber eine Zahl eingebe und anstelle des Buttons einfach 'return'
drücke, dann meldet mir der Browser, dass er die Karte nicht darstellen kann,
weil eine Variable fehlt. d.h. bei 'return' wird irgendeine Stelle der
Applikation aufgerufen, aber sicher nicht meine Funktion.
Was muss ich tun, damit auch bei einem 'return' meine Funktion aufgerufen wird?
Gruss
Ingrid
Hallo Ingrid
Wenn man die Zahl eingegeben hat und auf den Button klickt, dann startet eine
Funktion, die mir die Karte im gewünschten Massstab darstellt.
Wenn ich nun aber eine Zahl eingebe und anstelle des Buttons einfach 'return'
drücke, dann meldet mir der Browser, dass er die Karte nicht darstellen kann,
weil eine Variable fehlt. d.h. bei 'return' wird irgendeine Stelle der
Applikation aufgerufen, aber sicher nicht meine Funktion.
Was muss ich tun, damit auch bei einem 'return' meine Funktion aufgerufen wird?
Dies ist tatsächlich ein Sonderfall.
Dein Quelltext sieht z.B. so aus:
<form action="" method="" target="">
<input type="Text" name="massstab" value="" size="" maxlength="">
<input type="Submit" name="abschicken" value="Abschicken">
</form>
Klickt der Anwender auf abschicken, dann steht im Querystring z.B.:
?massstab=12&abschicken=Abschicken
Verwendet er Enter zum Abschicken des Formulares, dann steht im Querystring
?massstab=12
Der Submitbutton wird nicht mit übertragen.
Ich würde das Problem nicht mit JavaScript lösen. Löse es serverseitig. Mache dein Programm einfach nur vom Vorhandensein der Variable Massstab abhängig und ignoriere den Abschickenbutton.
Geht dass nicht, dann hast du 2 Möglichkeiten. Entweder du versteckst im Quelltext ein hidden-Feld, welches den Absendebutton simuliert.
<input type="hidden" name="absenden" value="Absenden">
Sollte das Probleme bereiten, dann bleibt nur JavaScript. Passe dazu dieses Script an:
http://selfhtml.org/sfausles/tsfa_tcc.htm#a1
Viele Grüße
Antje
Hallo Antje
Es scheint wirklich ein ganz spezieller Sonderfall zu sein.
Ich habe nämlich das Script angepasst und eingebaut. Ich kann damit alle Tasten
überprüfen, bzw. auf meine Funktion umleiten, nur mit dem 'return' geht's nicht.
d.h. wenn ich in dem Script die 13 durch z.B. die 32 (spacetaste) austausche,
dann geht's. Mit der 13 geht's nicht, bzw. ich kriege immer noch die gleiche
Fehlermeldung wie vorher.
Irgendeine Idee, was da los ist?
Liegt das vielleicht am IE? (meine Applikation läuft nur auf dem IE.)
Gruss
Ingrid
sers.. also ich versteh net ganz.. wenn man einfach nur return drückt passiert gar nix!
vielleicht meinst du wenn man das text feld irgendwie verlassen hat mit tab oder ähnlichem..?
dann kansnt mit onblur() feststellen dass dem so ist und den focus auf den button setzten um den es geht !
Tom
Hallo Ingrid,
ich vermute, Du arbeitest mit einem onClick-Eventhandler beim Button. Stattdessen würde ich mit einem onSubmit-Eventhandler im Formular-Tag arbeiten. Zudem läßt sich bei diesem bestimmen, ob das Formular wirklich abgeschickt werden soll oder nicht, indem man true oder false zurückgibt. Motto:
<form onSubmit="return checkAll()">
und die Funktion checkAll() gibt dann true oder false zurück, um das Formular an den Server abzuschicken oder nicht.
Viele Grüße
Frank