2012-11-08 2 views
6

Come dice il titolo, invece di fare clic sul pulsante "Salva" dopo aver attivato la modalità di modifica, vorrei avere la stessa funzionalità quando premendo il tasto Invio/Ritorno.Utilizzo del tasto Invio/Invio per salvare la cella modificata in Primefaces 3.4 Datable modificabile in cella

Ho tentato di farlo con p: hotkey ma a quanto pare p: hotkey non funzionerà con componenti modificabili focalizzati.

C'è qualche altro modo per farlo rispetto a scavare in JQuery?

risposta

6

C'è qualche altro modo per farlo rispetto a scavare in JQuery?

Sì, utilizzando la semplice vaniglia JS. Ma questo finisce in un codice boilerplate probabilmente non cross-browser. Non scherzo, non è possibile tramite JSF perché la magia deve davvero accadere sul lato client. Poiché lo <p:cellEditor> non supporta la funzionalità richiesta (in modo che possa generare solo il codice jQuery necessario da solo), è necessario scriverlo da solo.

Ci sono stato, fatto che:

$(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(); 
    } 
}); 

Basta mettere in qualche file JS globale. Questo copre tutti i campi di input all'interno degli editor di celle.

+1

Ho una domanda. All'interno dello stesso dataTable, ho l'editor di celle e ho anche un commandButton per cancellare il record. Se clicco sul pulsante per modificare e premo invio, sta facendo l'azione di cancellazione e non la modifica. Come posso far eseguire la modifica invece di eliminare? – Erick