Tengo tres enfoques, aquí puede usar ambos <input>o <textarea>según sus requisitos.
1. Utilice Entrada en <td>.
Usando <input>elemento en todos los <td>s,
<tr><td><input type="text"></td>....</tr>
Además, es posible que desee cambiar el tamaño de la entrada al tamaño de su td. ex.,
input { width:100%; height:100%; }
Además, puede cambiar el color del borde del cuadro de entrada cuando no se está editando.
2. Utilice contenteditable='true'atributo. (HTML5)
Sin embargo, si desea utilizarlo contenteditable='true', es posible que también desee guardar los valores adecuados en la base de datos. Puede lograr esto con ajax.
Puede adjuntar keyhandlers keyup, keydown, keypressetc a la<td> . Además, es bueno usar algo de delay () con esos eventos cuando el usuario escribe continuamente, el evento ajax no se activará con cada tecla que presione el usuario. por ejemplo,
$('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. Agregar <input>a <td>cuando se hace clic en él.
Agregue el elemento de entrada tdcuando <td>haga clic en, reemplace su valor de acuerdo con el tdvalor de. Cuando la entrada está borrosa, cambie el valor de `td con el valor de la entrada. Todo esto con javascript.