farsicomores
Messages postés6Date d'inscriptionjeudi 23 février 2006StatutMembreDernière intervention11 mars 2011
-
9 mars 2011 à 10:34
007Julien
Messages postés276Date d'inscriptionmercredi 22 septembre 2010StatutMembreDernière intervention 8 janvier 2014
-
13 mars 2011 à 14:39
bonjour je suis entrain de faire un formulaire de saisi et je créer les champs dynamiquement et et je voudrais calculé les valeurs mais je n'y arrive pas car j'ai concaténé les id pour que ça donne des noms différent mais je ne sais pas comment récupéré les id concaténés.
voici mon code, d’ailleurs une partie du code j'ai trouvé les idées ici.
<script language="javascript">
//---------------
function Calcul(){
var Obj = null,
Qte,
Prix,
Total = 0,
Valeur;
//-- tant que l'objet existe
while( Obj = document.getElementById('qte')){
//-- recup des valeurs
Qte = parseInt( Obj.value);
Prix = parseFloat( document.getElementById('pu').value);
Valeur = Qte * Prix; // pas mis les tests si isNaN
//-- affiche le resultat
document.getElementById('montant').value = Valeur;
//-- ajoute dans total
Total += Valeur;
//-- au suivant
Ind ++;
}
//-- mets dans total
// document.getElementById( "total").value = Total;
}
var Compteur = 0;
//--------------------------
function Delete_Ligne( obj_){
var Parent;
var Obj = obj_;
if( Obj){
//-- tant que pas la balise <TR>
do{
Obj = Obj.parentNode;
}while( Obj.tagName != "TR")
//-- Recup du parent
Parent = Obj.parentNode;
//-- Suppression de la ligne
if( Parent){
Parent.deleteRow( Obj.rowIndex)
}
}
}
//----------------------
function Create_Ligne(){
//-- compteur pour le FUN
Compteur++;
//-- Get objet tableau
var O_Table = document.getElementById('fact-tablee');
//-- Get nombre de ligne du tableau
var NbrLigne = O_Table.rows.length;
//-- Position d'insertion
var Pos = NbrLigne;
//-- Insertion d'une ligne
O_Row = O_Table.insertRow( Pos);
//-- Insertion des cellules
O_Cell = O_Row.insertCell(-1);
O_Cell.innerHTML = O_Row.rowIndex;
var ligne=parseInt(O_Cell.innerHTML); //recupere le nombre de la ligne
//alert(ligne);
O_Cell = O_Row.insertCell(-1);
O_Cell.innerHTML = '
';
O_Cell = O_Row.insertCell(-1);
O_Cell.innerHTML = '
';
O_Cell = O_Row.insertCell(-1);
O_Cell.innerHTML = '
';
O_Cell = O_Row.insertCell(-1);
O_Cell.innerHTML = '
0
';
O_Cell = O_Row.insertCell(-1);
O_Cell.innerHTML = '
';
O_Cell = O_Row.insertCell(-1);
O_Cell.innerHTML = '
0 €
';
O_Cell = O_Row.insertCell(-1);
O_Cell.innerHTML = '
';
O_Cell = O_Row.insertCell(-1);
O_Cell.innerHTML = '
';
}
</script>
------
<html>
|
DESIGNATION |
Qté |
P.U. |
TVA |
PRIX HT |
PRIX TTC |
|
|
|
</html>
007Julien
Messages postés276Date d'inscriptionmercredi 22 septembre 2010StatutMembreDernière intervention 8 janvier 20144 13 mars 2011 à 14:39
L'utilisation de getElementsByTagNames permet de récupérer les inputs existants, puis de calculer les produits à partir des quantités ...
var tslNpt=document.getElementsByTagNames('input'),npt,idx,lgn;
// Appeler tous les inputs
for (var i=0;i<tlsInp.length;i++) {npt=tlsInp[i];
// Récupérer leur id (idx)
idx=npt.id;
// et les numéros de lignes des inputs qte
if (ids.substr(0,3)=='qte') {lgn=parseInt(npt.id.substr(3));
// Calculer les produits avec leurs id : idx et les id reconstitués 'pu'+lgn ...
}
}
Le code serait plus homogène avec un règle de construction des noms (par exemple les trois premières consonnes) qui permettrait par exemple (avec dsg, qnt et prx) de retrouver sans hésitations les désignations, quantité et prix unitaires
Attention encore aux virgules pour les centimes qu'il faut remplacer par des points pour faire les calculs en javasript