Marian Wischkony: submit abfangen und abbrechen

Hallo,

ich habe mir mithilfe von Javascript, einem Inputfeld und einer Selectbox eine neue Selectbox mit zusätzlichen Funktionen gebastelt.
Soweit so gut, es geht alles wie ich will...nur...jetzt hab ich das Ding getestet und in Opera hat er ein anderes Verhalten als in anderen Browsern...macht ja nix, deswegen testet man ja.
In der Selectbox kann man mit den Cursortasten Navigieren und bei drücken der Entertaste wird das Inputfeld mit dem ausgewählten Inhalt der Selectbox befüllt. Das geht...nur in Opera wird das Formular sofort versendet und das will ich nicht. Deswegen meine frage, wie kann ich NUR für die Selectbox das onsubmit abfangen und abbrechen?
Ich probiere solange einfach mal aus .... meine erste Idee ist ein Onsubmit in den Tag der Selectbox zu packen...das probiere ich jetzt, aber so weit ich weiß geht sowas nicht...
Bei Ideen von euch würde ich mich freuen.

Marian

  1. In der Selectbox kann man mit den Cursortasten Navigieren und bei drücken der Entertaste wird das Inputfeld mit dem ausgewählten Inhalt der Selectbox befüllt.

    Warum dies? Bzw: Warum kannst du die Formularverarbeitung nicht so machen, dass entweder der Inhalt des SELECT oder das INPUT genutzt werden?

    Das geht...nur in Opera wird das Formular sofort versendet und das will ich nicht.

    Das ist das vom User gewohnte Standardverhalten im Opera. Deswegen wird kein User Return drücken, wenn er mit den Cursortasten in Select-Listen operiert - weil er damit auch jedes andere Formular abschicken würde, was er sicherlich nicht will.

    Deswegen meine frage, wie kann ich NUR für die Selectbox das onsubmit abfangen und abbrechen?

    Ich rate davon ab, am vom User gewohnten Browserverhalten herumzudoktoren.

    1. In der Selectbox kann man mit den Cursortasten Navigieren und bei drücken der Entertaste wird das Inputfeld mit dem ausgewählten Inhalt der Selectbox befüllt.

      Warum dies? Bzw: Warum kannst du die Formularverarbeitung nicht so machen, dass entweder der Inhalt des SELECT oder das INPUT genutzt werden?

      Okay, das kann ich erklären...klar deine Idee ist im Grunde nicht schlecht. Es soll für eine Datenbank Anwendung genutzt werden. Der User kann in das Textfeld irgendwelchen Suchtext eintragen und Zeitgleich wird der Inhalt der Selectbox neu aktualisiert.
      Wenn z.B. der User nur weiß "Das Ding das ich such fing doch irgendwie mit b an..." dann tippt dieser b in das Textfeld(Suchfeld) und es erscheint eine Liste von Einträgen die mit b anfangen. Jetzt kann er darin "browsen" und einen Eintrag auswählen. Das ausfüllen des Textfeldes beim drücken der Entertaste soll bestätigende Wirkung haben. Nach dem Motto "Ich drücke Enter weil ich diesen Eintrag will." und siehe da, meine Auswahl steht im Textfeld.

      Das geht...nur in Opera wird das Formular sofort versendet und das will ich nicht.

      Das ist das vom User gewohnte Standardverhalten im Opera. Deswegen wird kein User Return drücken, wenn er mit den Cursortasten in Select-Listen operiert - weil er damit auch jedes andere Formular abschicken würde, was er sicherlich nicht will.

      Das wußte ich nicht...ich nutze Privat hauptsächlich den IE und den Firefox...manchmal noch Safari...aber die anderen eigentlich nie.

      Deswegen meine frage, wie kann ich NUR für die Selectbox das onsubmit abfangen und abbrechen?

      Ich rate davon ab, am vom User gewohnten Browserverhalten herumzudoktoren.

      Deinen rat sehe ich ein, jedoch verliere ich meine gewollte bestätigende Wirkung...werde mit meinem Kumpels mal quatschen was die sagen, aber solange wüßte ich trotzdem gerne wie man sowas abfangen kann.

      1. Deinen rat sehe ich ein, jedoch verliere ich meine gewollte bestätigende Wirkung...werde mit meinem Kumpels mal quatschen was die sagen, aber solange wüßte ich trotzdem gerne wie man sowas abfangen kann.

        Nutze einfach etwas anderes, als ein Select-Feld.

        Dein Mechanismus funktioniert jetzt ja sowieso nur, wenn Javascript aktiv ist. Für alternative Lösungen kannst du also vom gleichen Stand ausgehen: Javascript ist aktiv - oder es funktioniert sowieso komplett anders.

        Und es gibt da ja wirklich nette Lösungen, die mit entsprechenden Layern, sogar hübscher formatiert, und AJAX passende dynamisch aktualisierte Suchergebnisse einblenden.

  2. Hallo Marian Wischkony,

    Deswegen meine frage, wie kann ich NUR für die Selectbox das onsubmit abfangen und abbrechen?

    Hast Du mal versucht, den Key-Event für Return abzufragen in Bezug auf Deine Box?

    Sowas in der Art:

    box.onkeypress = function(e){  
      // is es Opera und wurde Return gedrückt innerhalb der Box  
      if (window.opera && e.keyCode == 13){  
        //Submit des Formulars verhindern  
      }  
    }
    

    Mit freundlichem Gruß
    Micha

    --
    LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
    1. Hallo Marian Wischkony,

      Deswegen meine frage, wie kann ich NUR für die Selectbox das onsubmit abfangen und abbrechen?

      Hast Du mal versucht, den Key-Event für Return abzufragen in Bezug auf Deine Box?

      Sowas in der Art:

      box.onkeypress = function(e){

      // is es Opera und wurde Return gedrückt innerhalb der Box
        if (window.opera && e.keyCode == 13){
          //Submit des Formulars verhindern
        }
      }

      
      >   
      >   
      >   
      > Mit freundlichem Gruß  
      > Micha  
        
      Hey, danke für den Tipp...aber das hab ich leider schon probiert.  
      Aber etwas hab ich eben gelernt...wusste garnicht das man mit window.opera die art des Fensters abfragen kann,...danke :).  
        
      Geht das auch für andere Browser?  
      Marian
      
      1. Hallo Marian Wischkony,

        wusste garnicht das man mit window.opera die art des Fensters abfragen kann,...danke :).

        Kann man auch nicht. Alle Variablen leiten sich wohl vom Window-Objekt ab. Schreibst Du also

        var a = 12; kannst Du auf diese mit window.a zugreifen. Folglich müsste auch nur opera gehen - probiert habe ich es nicht...

        Geht das auch für andere Browser?

        Nein.

        Mit freundlichem Gruß
        Micha

        --
        LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
  3. Ich probiere solange einfach mal aus .... meine erste Idee ist ein Onsubmit in den Tag der Selectbox zu packen...das probiere ich jetzt, aber so weit ich weiß geht sowas nicht...
    Bei Ideen von euch würde ich mich freuen.

    Marian

    Dachte ich mir...im w3c nachgesehen...onsubmit gibt es nur für das Form element.
    The onsubmit event occurs when a form is submitted. It only applies to the FORM element.
    So ein mist...

    Marian