Es scheint eine einfache Anforderung zu sein, aber ich habe noch keine einfache Lösung gefunden:
In einer JSF 1.2 / Richfaces 3.3 Webapp habe ich ein Formular mit Eingabekomponenten verschiedener Typen, gefolgt von einem <a4j:commandButton>
und einem <h:commandButton>
. Der erste setzt das Formular zurück, der zweite führt eine Aktion mit den eingegebenen Daten aus.
Mein Ziel ist es, dass diese Aktion ausgelöst wird, wenn der Benutzer während der Dateneingabe die Eingabetaste drückt. Wie kann ich das tun?
Bearbeiten : Im Allgemeinen habe ich mehr als ein <h:commandButton>
pro <form>
. Ich möchte eine bestimmte als Standardaktion festlegen. Außerdem möchte ich, dass die Lösung mit AJAX (die wir häufig verwenden) gut spielt.
Im Nachhinein ist die Lösung dieses Problems mit den Mitteln, die HTML bietet, viel weniger spröde und leichter zu pflegen, wie die Antworten auf die folgende verwandte Frage zeigen:
Mehrere Übergabeschaltflächen im HTML-Formular - bestimmen Sie eine Schaltfläche als Standard
Wenn Sie nicht den MSIE-Browser verwenden und in Wirklichkeit nur ein Eingabefeld ohne Schaltfläche verwenden, sollte dies nur das Standardverhalten sein. Sonst hat wahrscheinlich ein (automatisch generierter) JS-Code es vermasselt.
Wenn Sie keine TextAreas im Formular haben, wäre eine einfache Lösung die folgende:
%Vor% Oder wenn Sie textareas haben und nicht dieselben keypress
-Funktionen über alle Nicht-Textarea-Eingabeelemente wiederholen möchten, führen Sie das folgende Skript während des Fenster-Onloads aus.
Aufbauend auf der Antwort von BalusC habe ich folgendes gefunden (getestet auf IE und FireFox):
%Vor%wobei ifEnterClick definiert ist durch:
%Vor%Bearbeiten : Wenn Sie einen Wert aus der automatischen Vervollständigung des Firefoxformulars mit der Eingabetaste auswählen, wird ein Keydown-Ereignis ausgelöst, aber kein Tastendruckereignis. onkeypress ist dem onkeydown vorzuziehen.
Verwenden Sie die PrimeFaces-Komponente:
%Vor%Verwenden Sie dies in Kombination mit einer Fokuskomponente und Sie werden rocken!
%Vor%Tags und Links javascript jsf