У меня есть три подхода. Здесь вы можете использовать оба <input>или <textarea>в соответствии с вашими требованиями.
1. Используйте ввод <td>.
Используя <input>element во всех <td>s,
<tr><td><input type="text"></td>....</tr>
Кроме того, вы можете изменить размер ввода до размера его td. напр.,
input { width:100%; height:100%; }
Вы можете дополнительно изменить цвет границы поля ввода, когда оно не редактируется.
2. Используйте contenteditable='true'атрибут. (HTML5)
Однако, если вы хотите использовать contenteditable='true', вы также можете сохранить соответствующие значения в базе данных. Вы можете добиться этого с помощью ajax.
Вы можете прикрепить 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. При щелчке добавить <input>к <td>.
Добавьте элемент ввода tdпри <td>нажатии, замените его значение в соответствии tdсо значением. Когда ввод размыт, измените значение `td на значение ввода. Все это с помощью javascript.