resalsr: Focus auf Button bei Focus Textfeld im IE8

Hallo,

hab hier ein ganz normales <input type='text' value=''> feld und einen button daneben.

bei dem textfeld ist eine funktion

onKeyPress="doKey_2(window.event.keyCode, abfrage_starten()"

implementiert, sodass beim enter drücken im textfeld auch das passiert, was beim button klick passiert.
Soweit so gut.

Im IE8 jedenfalls selektiert er mir den button schon, wenn ich das textfeld anklicke. wenn ich dann auf "Enter" drücke, ruft er die JS-funktion 2 mal auf, was zu fehlern führt.

der button ist aber nicht focussiert, wie wenn man ihn per tab anhüpft oder gedrückt hat, sondern so naja "blau" umrandet.

hab ich auf den button einmal gedrückt, kann ich danach ganz normal im textfeld tippen und auf enter drücken und die JS-funktion wird nur einmal aufgerufen.

Zusatz: die ganze eingabefeld "tabelle" wird über ajax geladen.

Ich hab schon alles probiert und gesucht, kann mir da jemand helfen oder hatte jemand dasselbe problem??

danke im voraus !

  1. Das scheint mir übermäßig kompliziert und daher rühren vermutlich die doppelten Events. Arbeite besser mit dem submit-Event beim zugehörigen form-Element. Der wird automatisch ausgeführt, wenn man auf den Submit-Button klickt oder im Eingabefeld Enter drückt. Eine Abfrage von keyCode ist nicht nötig, aber das Unterdrücken der Standardaktion, falls du die Formulardaten per JavaScript absenden willst.

    <form onsubmit="abfrage_starten(); return false">

    Mathias

    1. hi,

      das Problem ist, das sind mehrere dynamische inhalte, die per AJAX geladen werden.
      Ich kann also kein Formular absenden, sondern muss die onClick aktion beim button verwenden, also eine JS-funktion.

      evtl. form über die eingabe-felder und hier bei onsubmit="return false;" ?

      1. das Problem ist, das sind mehrere dynamische inhalte, die per AJAX geladen werden.

        Das ist mir schon klar.

        Ich kann also kein Formular absenden,

        Sollst du auch gar nicht, das war nicht mein Tipp. Du sollst nur das Ereignis submit verwenden, um die Ajax-Anfrage zu starten, während du das Absenden des Formulares (auf herkömmlichen Weg) unterdrückst (return false).

        sondern muss die onClick aktion beim button verwenden

        Ich denke nicht, dass du das musst, aber du kannst es natürlich ausprobieren, indem du zusätzlich onsubmit="return false" notierst.

        Mathias

  2. mittlerweile hab ich ne Lösung gefunden:

    einfach bei den <button> tags nicht onClick="action()" verwenden sondern onMouseUp="action()".
    läuft auf dasselbe hinaus, nur führt er den button click beim enter-drücken (submit-form) nicht aus sonder wirklich erst, wenn man den button drückt

    1. läuft auf dasselbe hinaus, nur führt er den button click beim enter-drücken (submit-form) nicht aus

      Ich dachte, das wolltest du? Wieso hast du diese Funktionalität nun herausgenommen? Hast du meinen Tipp ausprobiert?

      Mathias