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
, keypress
etc 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 td
po <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.