У мене є три підходи, тут ви можете використовувати обидва <input>або <textarea>відповідно до своїх вимог.
1. Використовуйте Input in <td>.
Використовуючи <input>елемент у всіх <td>s,
<tr><td><input type="text"></td>....</tr>
Крім того, ви можете змінити розмір вхідного розміру до його розміру td. напр.,
input { width:100%; height:100%; }
Ви можете додатково змінити колір рамки поля введення, коли він не редагується.
2. Використовуйте contenteditable='true'атрибут. (HTML5)
Однак якщо ви хочете використовувати contenteditable='true', ви також можете зберегти відповідні значення в базі даних. Домогтися цього можна за допомогою аякса.
Ви можете прикріпити keyhandlers keyup, keydown, і keypressт.д. в <td>. Крім того, добре використовувати деяку затримку () з тими подіями, коли користувач постійно вводить, подія ajax не спрацьовує при кожному натисканні клавіші користувача. наприклад,
$('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. Append , <input>щоб <td>при її натисканні.
Додайте вхідний елемент, tdколи <td>клацніть на, замініть його значення відповідно до значення td's. Коли вхід розмито, змініть значення `td на значення входу. Все це за допомогою JavaScript.