2012-11-08 8 views
6

Wie der Titel sagt, anstatt auf den "Speichern" -Button nach dem Wechsel in den Bearbeitungsmodus zu klicken, würde ich gerne die gleiche Funktionalität haben, wenn Drücken der Enter/Return-Taste.Return/Enter-Taste zum Speichern der bearbeiteten Zelle in Primefaces 3.4 In-Zelle editierbare Datentabelle

Ich habe versucht, dies mit p: hotkey, aber anscheinend p: hotkey wird nicht mit fokussierten bearbeitbaren Komponenten arbeiten.

Gibt es einen anderen Weg dies zu tun als in JQuery einzutauchen?

Antwort

6

Gibt es eine andere Möglichkeit dies zu tun als in JQuery einzutauchen?

Ja, mit plain vanilla JS. Dies führt jedoch zu einem möglicherweise nicht browserübergreifenden Standardcode. Kein Scherz, nein, das ist nicht über JSF möglich, da die Magie wirklich auf der Client-Seite passieren muss. Da die <p:cellEditor> die angeforderte Funktion nicht unterstützt (so dass sie andernfalls nur den erforderlichen jQuery-Code selbst generieren könnte), müssen Sie sie selbst schreiben.

dort gewesen, getan:

$(document).on("keydown", ".ui-cell-editor-input input", function(event) { 
    if (event.keyCode == 13) { 
     $(this).closest("tr").find(".ui-row-editor .ui-icon-check").click(); 
    } 
}); 

in irgendeiner Datei globalen JS Setzen Sie ihn einfach. Dies umfasst alle Eingabefelder innerhalb von Zelleditoren.

+1

Ich habe eine Frage. Innerhalb derselben Datentabelle habe ich den Zelleneditor und ich habe auch eine Befehlsschaltfläche, um den Datensatz zu löschen. Wenn ich auf die Schaltfläche zum Bearbeiten klicke und ich die Eingabetaste drücke, wird die Löschaktion ausgeführt und nicht die Bearbeitung. Wie kann ich den Editiervorgang ausführen anstatt ihn zu löschen? – Erick

Verwandte Themen