Je me demande si cela est possible, et sinon, la meilleure façon de mettre en place des gestionnaires d'événements pour y arriver ...Faire automatiquement la valeur de la somme des entrées des autres entrées?
Si j'ai une table HTML semblable à une feuille de calcul comme ceci:
<table>
<tr id="row1">
<td><input type="text" class="number" value="1"/></td>
<td><input type="text" class="number" value="2"/></td>
<td><input type="text" class="total" /></td>
</tr>
</table>
puis-je écrire une fonction le long des lignes de:
function getTotal() {
var total = 0;
$("#row1 .number").each(function() {
total += Number($(this).val());
};
return total;
}
$("#row1 .total").val(getTotal);
sorte que la valeur de l'entrée total
passe automatiquement à la somme des entrées number
dans cette rangée (sans avoir à mettre onchange
gestionnaires d'événements pour chaque entrée number
)?
Idéalement, je veux que la valeur du total change simplement parce qu'elle est définie comme étant la somme des autres entrées, de sorte qu'elle se définira à la somme des charges de page et des changements apportés aux entrées. la valeur est dérivée de. J'essaye de faire une page où l'utilisateur entre des valeurs dans les cellules non-totales, et une fonction validera l'entrée, et idéalement je voudrais éviter d'avoir à mettre à jour chaque rangée chaque fois qu'un utilisateur fait un changement, mais en même temps je ne veux pas rendre les choses trop compliquées en ayant à écrire que la cellule totale ne devrait se mettre à jour que lorsqu'une cellule de sa rangée change.
ou '$ (» # row1 .number "). change (setTotal) .change()' – karim79
@ karim79 - Cela calculerait le total de 'n' fois sur le chargement de la page, semble exagéré pour le raccourcissement que vous obtenez. –
vous êtes sur, j'ai totalement négligé cela. Agréable! – karim79