Mam trzy podejścia, tutaj możesz użyć obu <input>lub <textarea>zgodnie ze swoimi wymaganiami.
1. Użyj Input in <td>.
Używanie <input>elementu we wszystkich <td>s,
<tr><td><input type="text"></td>....</tr>
Możesz także zmienić rozmiar wejścia do jego rozmiaru td. dawny.,
input { width:100%; height:100%; }
Możesz dodatkowo zmienić kolor obramowania pola wprowadzania, gdy nie jest ono edytowane.
2. Użyj contenteditable='true'atrybutu. (HTML5)
Jeśli jednak chcesz użyć contenteditable='true', możesz również zapisać odpowiednie wartości w bazie danych. Możesz to osiągnąć dzięki Ajax.
Można dołączyć keyhandlers keyup, keydown, keypressetc do <td>. Ponadto dobrze jest użyć opóźnienia () z tymi zdarzeniami, gdy użytkownik ciągle wpisuje, zdarzenie ajax nie będzie uruchamiane przy każdym naciśnięciu klawisza przez użytkownika. na przykład,
$('table td').keyup(function() {
clearTimeout($.data(this, 'timer'));
var wait = setTimeout(saveData, 500); // delay after user types
$(this).data('timer', wait);
});
function saveData() {
// ... ajax ...
}
3. Dołącz <input>do <td>po kliknięciu.
Dodaj element wejściowy tdpo <td>kliknięciu, zamień jego wartość zgodnie z wartością td's. Kiedy dane wejściowe są zamazane, zmień wartość td na wartość wejścia. Wszystko to za pomocą javascript.