Bitte mal ein funktionierendes Beispiel, so kann ich das echt nicht nachvollziehen bzw. muss mutmaßen:
Der Fokus befindet sich die ganze Zeit im Formularfeld. Die Auswahl in den Vorschlägen erfolgt mit den Pfeiltasten. Die Bestätigung erfolgt mit einem Enter im Formularfeld, wodurch der Feldwert aktualisiert wird.
Klar, wenn du das Modell verfolgst, kommst du in die Bredouille. Ich wüsste auch nicht, wie du das umgehen und eindeutig Enter zum Vorschlag bestätigen und zum Formular absenden unterscheiden kannst. Wie gesagt würde ich dir ein anderes Modell vorschlagen, wo sich dieses Problem überhaupt nicht ergibt.
Wenn es nicht stimmt, was ich oben vermutet habe, und der Fokus auch mal auf einem Element in der Vorschlagsliste liegt: Wieso wird dann, wenn der Fokus dort liegt, das Formular abgesendet beim Drücken von Enter? Behandelt branchListKeyboardAction nur Ereignisse in der Vorschlagsliste oder auch zusätzlich die Ereignisse beim input?
Aber ich probiere mal einen Nebensatz von Dir aus. Nämlich das input-textfield bei einem KeyEvent zu fokussiren. Vielleicht hilft das ja gegen das Auslösen des Submits.
Oder kann ich den KeyEvent auch konsumieren? zerstören, während ich ihn bearbeite?
Standardaktion unterdrücken
Das ist im Grunde das, was du im submit mit return false erledigst. Das geht genauso auch in deiner Handlerfunktion.
Mathias