J'ai trois approches, ici vous pouvez utiliser les deux <input>
ou <textarea>
selon vos besoins.
1. Utilisez Input in <td>
.
Utilisation de l' <input>
élément dans tous les <td>
s,
<tr><td><input type="text"></td>....</tr>
Vous pouvez également redimensionner l'entrée à la taille de son td
. ex.,
input { width:100%; height:100%; }
Vous pouvez en outre modifier la couleur de la bordure de la zone de saisie lorsqu'elle n'est pas en cours de modification.
2. Utilisez l' contenteditable='true'
attribut. (HTML5)
Toutefois, si vous souhaitez utiliser contenteditable='true'
, vous pouvez également enregistrer les valeurs appropriées dans la base de données. Vous pouvez y parvenir avec ajax.
Vous pouvez joindre keyhandlers keyup
, keydown
, keypress
etc au <td>
. En outre, il est bon d'utiliser un délai () avec ces événements lorsque l'utilisateur tape en continu, l'événement ajax ne se déclenchera pas à chaque pression de l'utilisateur clé. par exemple,
$('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. Ajoutez <input>
à <td>
quand vous cliquez dessus.
Ajoutez l 'élément d' entrée dans td
lorsque vous <td>
cliquez sur, remplacez sa valeur en fonction de la td
valeur de s. Lorsque l'entrée est floue, changez la valeur de `td avec la valeur de l'entrée. Tout cela avec javascript.