У меня есть три подхода. Здесь вы можете использовать оба <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.