speedy: Submit verhindern

Hallo,

ich habe da ein bißchen komisches Problem.

Und zwar habe ich hier (in einer Customization) ein Formular mit Text-Input-Feldern. Hinter paar Feldern gibt es einen Button für ein Popup, in welchem man sich aus verschiedenen Werten (die sich beim öffnen des Popups erst vom Server geholt werden) aus einer Liste (mittels Formular) sich den benötigten Wert raussuchen kann und dieser wird dann im Parent in das entsprechende Feld eingetragen.

Das Formular hat keine Action oder sonstwas, sondern nur einen Namen und die Rückgabeaktion wird bei einem Button-Klick per Javascript ausgeführt.
Jetzt hat das "Popup-Formular" auch noch ein Text-Inputfeld mit einem zweiten Button. Wenn man in das Text-Inputfeld etwas reinschreibt und auf den Search-Button klickt, dann ... dahinter ist bißchen Javascript, um die eventuell lange Liste der möglichen Werte ein wenig zu filtern.

So ... wenn ich jetzt aber den Cursor in dem Textfeld habe (egal, ob ich schon paar Zeichen eingetippt habe oder nicht) und auf Enter drücke, dann wird das Formular an den Server geschickt. ... ich habe keine Ahnung wieso, weil da nirgendwo ein Submit auf der Seite ist und auch keine Action im Formular eingetragen ist.

Daß das Formular an den Server geschickt wird, muß ich jetzt irgendwie verhindern.

Ich habe es schon damit versucht, daß ich auf des Text-Inputfeld das onKeypressed gelegt und in der Methode auf event.keyCode==13 (Enter)überprüft habe und dann die Javascript-Methode Search ausgeführt habe. Jene Keypressed-Methode habe ich auch schon versucht als Handler für den Event keypressed einzutragen. (ich glaube, ich habe es richtig gemacht - bin mir aber nicht 100%ig sicher) ... er führt in jedem Fall auch die Methode ganz brav aus ... aber den Submit macht er danach trotzdem noch.

Jetzt müßte ich also den Submit noch irgendwie verhindern. Nur wie ?
Kann ich den Event so abfangen, daß er dann nicht mehr an irgendjemand anderes auch noch weiter geleitet wird ? Oder eben das "onSubmit" abfangen ? ... den keyCode kann ich ja auch nicht auf 0 setzen oder so.

Irgendeiner ne Idee, was ich da machen kann, damit das dumme Formular nicht mehr abgeschickt wird ?

MFG,
speedy

  1. Hallo!

    Irgendeiner ne Idee, was ich da machen kann, damit das dumme Formular nicht mehr abgeschickt wird ?

    Ein Script ist immer nur so schlau, wie sein Programmierer ;-)
    Vielleicht würde etwas Code weiterhelfen. Bei mir wird nichts abgesendet, wenn man in einem input auf ENTER drückt. Hast du auch action="" ? Daran könnte es u.U auch liegen.

    Nico

    1. Hast du auch action="" ? Daran könnte es u.U auch liegen.

      Das allein hat nicht funktioniert.

      MFG,
      speedy

  2. Hi,

    So ... wenn ich jetzt aber den Cursor in dem Textfeld habe (egal, ob ich schon paar Zeichen eingetippt habe oder nicht) und auf Enter drücke, dann wird das Formular an den Server geschickt. ... ich habe keine Ahnung wieso, weil da nirgendwo ein Submit auf der Seite ist und auch keine Action im Formular eingetragen ist.

    das ist so, damit Formulare auch dann abgeschickt werden können, wenn der Autor einen Submit-Button vergessen hat und z.B. nur Javascript dazu verwendet. ;-)

    Ich habe es schon damit versucht, daß ich auf des Text-Inputfeld das onKeypressed gelegt und in der Methode auf event.keyCode==13 (Enter)überprüft

    Überleg' doch mal... Du willst submit verhindern. Wieso nimmst Du dann diesen Eventhandler?

    freundliche Grüße
    Ingo

    1. Hi,

      Überleg' doch mal... Du willst submit verhindern. Wieso nimmst Du dann diesen Eventhandler?

      Überleg doch mal ... wieso ich hier frage ... weil mir einfach keine andere Idee mehr einfällt. Ich habe jenes gemacht, weil ich eben die Enter-Taste ausschalten wollte, damit man kein Submit mehr machen kann.

      Also Lösungsvorschläge würden mir eher helfen, als solche Bemerkungen.

      MFG,
      speedy

  3. Irgendeiner ne Idee, was ich da machen kann, damit das dumme Formular nicht mehr abgeschickt wird ?

    Deine Beschriebung habe ich jetzt nicht gelesen, war mit zu kompliziert, aber evtl. hilft dir:
    onsubmit="return false";

    Struppi.

    1. kompliziert, aber evtl. hilft dir:
      onsubmit="return false";

      Yep, genau das hats gebracht ... wieso mache ich mir das Leben eigentlich immer so schwer. :)

      MFG,
      speedy

  4. Hi,

    Das Formular hat keine Action

    Es ist also nicht valide.

    Daß das Formular an den Server geschickt wird, muß ich jetzt irgendwie verhindern.

    Die einfachste Methode dürfte sein, gar kein Formular zu benutzen, wenn Du den Formular-Effekt (Senden an den Server) gar nicht haben willst.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hi,

      Die einfachste Methode dürfte sein, gar kein Formular zu benutzen, wenn Du den Formular-Effekt (Senden an den Server) gar nicht haben willst.

      Aber ich brauche doch ein Text-Feld, 2 Buttons und ein Select-Feld für die Werte.

      MFG,
      speedy

      1. Hi,

        Die einfachste Methode dürfte sein, gar kein Formular zu benutzen, wenn Du den Formular-Effekt (Senden an den Server) gar nicht haben willst.
        Aber ich brauche doch ein Text-Feld, 2 Buttons und ein Select-Feld für die Werte.

        Aber kein form-Element.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.