Ingrid: Formulareingabe

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

  1. 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

    1. 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

      1. 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

        1. 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

  2. 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

  3. 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