Eu tenho três abordagens, aqui você pode usar ambos <input>
ou <textarea>
conforme suas necessidades.
1. Use Input in <td>
.
Usando o <input>
elemento em todos os <td>
s,
<tr><td><input type="text"></td>....</tr>
Além disso, você pode querer redimensionar a entrada para o tamanho dela td
. ex.,
input { width:100%; height:100%; }
Além disso, você pode alterar a cor da borda da caixa de entrada quando ela não estiver sendo editada.
2. Use o contenteditable='true'
atributo. (HTML5)
No entanto, se você deseja usar contenteditable='true'
, também pode salvar os valores apropriados no banco de dados. Você pode conseguir isso com ajax.
Você pode anexar keyhandlers keyup
, keydown
, keypress
etc à <td>
. Além disso, é bom usar algum delay () com esses eventos quando o usuário digita continuamente, o evento ajax não disparará com cada pressionamento de tecla do usuário. por exemplo,
$('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. Anexe <input>
a <td>
quando for clicado.
Adicione o elemento de entrada td
ao <td>
clicar em, substitua seu valor de acordo com o td
valor de. Quando a entrada estiver borrada, altere o valor de `td's com o valor da entrada. Tudo isso com javascript.