Ich habe drei Ansätze. Hier können Sie beide <input>
oder <textarea>
gemäß Ihren Anforderungen verwenden.
1. Verwenden Sie Input in <td>
.
Mit <input>
Elemente in allen <td>
s,
<tr><td><input type="text"></td>....</tr>
Möglicherweise möchten Sie auch die Größe der Eingabe auf die Größe ändern td
. Ex.,
input { width:100%; height:100%; }
Sie können zusätzlich die Farbe des Rahmens des Eingabefelds ändern, wenn es nicht bearbeitet wird.
2. Verwenden Sie das contenteditable='true'
Attribut. (HTML5)
Wenn Sie jedoch verwenden möchten, möchten contenteditable='true'
Sie möglicherweise auch die entsprechenden Werte in der Datenbank speichern. Sie können dies mit Ajax erreichen.
Sie können keyhandlers befestigen keyup
, keydown
, keypress
etc zu der <td>
. Es ist auch gut, bei diesen Ereignissen eine Verzögerung () zu verwenden, wenn der Benutzer kontinuierlich tippt. Das Ajax-Ereignis wird nicht bei jedem Tastendruck ausgelöst. beispielsweise,
$('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. Anhängen <input>
an, <td>
wenn darauf geklickt wird.
Fügen Sie das Eingabeelement hinzu, td
wenn Sie auf <td>
klicken, und ersetzen Sie seinen Wert durch den td
Wert des. Wenn die Eingabe unscharf ist, ändern Sie den Wert von `td mit dem Wert der Eingabe. All dies mit Javascript.