Koontz: Mehrere Buttons: Default bei drücken der ENTER-Taste

Hallo,

auf der Startseite meiner Internet-Präsenz gibt es mehrere Buttons. Wenn der Benutzer in einem Eingabefeld nun etwas eingibt und direkt danach die ENTER-Taste drückt, wird automatisch der erste Button auf der Seite betätigt. Es soll allerdings ein anderer Button gedrückt werden. Wie kann man das beeinflussen? Evtl. mit JavaScript?

Gruss,
Koontz

  1. Hi,

    Wie kann man das beeinflussen? Evtl. mit JavaScript?

    function Tastendruck (Ereignis) {  
      if (!Ereignis)  
        Ereignis = window.event;  
      if (Ereignis.keyCode == "13")  
        {  
        Button.MacheEtwas();  
        }  
    }  
    document.onkeypress = Tastendruck;
    

    Ungetestet! Müsste aber bei allen gängigen Browsern mit aktviertem JS funktionieren.

    MfG Hopsel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    1. Hallo, ich habe es bei mir so gelöst:

      • das default button ist vom Typ "submit"
      • die andere button sind vom Typ "button", und im onClick schreibe ich was er machen muss, z.Bsp.:
        onClick="document.MyForm.action='newaction';document.MyForm.submit()"

      Gruss
      Massimo

      1. hi,

        ich habe es bei mir so gelöst:

        • das default button ist vom Typ "submit"
        • die andere button sind vom Typ "button", und im onClick schreibe ich was er machen muss, z.Bsp.:
          onClick="document.MyForm.action='newaction';document.MyForm.submit()"

        wozu um himmel willen das?

        wir stimmen doch hoffentlich darin überein, dass bei einem "vernünftig" realisierten formular die action immer die gleiche bleibt, und serverseitig entschieden wird, was mit den daten zu tun ist ...?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hallo,

          wozu um himmel willen das?

          wir stimmen doch hoffentlich darin überein, dass bei einem "vernünftig" realisierten formular die action immer die gleiche bleibt, und serverseitig entschieden wird, was mit den daten zu tun ist ...?

          Sorry, ich konnte tatsächlich diese "action switching" Funktionalität aussparen (die brauche ich aber in meine Applikation :) )

          aber: falls es nur ein submit Button gibt, dann wird es die "default ENTER-Taste action" des Formulars. So wenn es mehrere submit Buttons gibt, man konnte einfach nur einem von denen als type="submit" deklarieren, und die andere als type="button" deklarieren

          Gruss
          Massimo

  2. Hallo Koontz,

    [...] wird automatisch der erste Button auf der Seite betätigt. Es soll allerdings ein anderer Button gedrückt werden. Wie kann man das beeinflussen?

    Zunächst mal gar nicht. Soweit ich weiß, ist es nirgends festgelegt, welcher von mehreren Submit-Buttons beim Drücken der Enter-Taste auszuwählen ist. Die meisten Browser nehmen dann einfach den ersten, ich habe aber vor einigen Monaten hier im Forum mal einen Beitrag gelesen, wonach einige Versionen von Opera stattdessen den letzten von mehreren Submit-Buttons auswählen.

    Evtl. mit JavaScript?

    Möglicherweise - siehe Antwort von Hopsel.
    Aber was ist, wenn der User Javascript deaktiviert hat?

    Ist also nicht ganz trivial...

    So long,

    Martin

  3. Guten Morgen Koontz,

    vielleicht hilft es, mit "tabindex" die Reihenfolge der Schaltflächen zu ändern?

    Mit Gruß
    Dada