Bonjour à tous, je viens de commencer à apprendre le JavaScript dans le cadre de mon stage, je rencontre donc quelques difficultés...
J'aimerais récupérer la valeur d'une case à cocher, par le code source HTLM...
Ma fonction JavaScript :
Code :
- function CAC_Montant(nomFormulaire)
- {
- var montant = 0;
- var res = 0;
- var f = document.getElementById(nomFormulaire);
- var longueur = f.length;
- for(var i=0; i<longueur; i++)
- {
- if(f.elements[i].checked){
- {
- res = parseFloat(f.getElementsByTagName('div')[8].getAttribute("title" ));
- montant = res + montant;
- }
- }
- }
- return(montant)
- }
|
Un tr du code HTML
Code :
- <tr id='taListeEncaissementsNonRapprLigne0' onclick='setLnActTb(this.id,"TbLnPr" )' style='cursor:default;' class='TbLnPr' onmouseover='this.className="TbLnOv"' onmouseout='this.className="TbLnPr"'>
- <td width=30 align='center'><input type='checkbox' id='cptTableSelecttaListeEncaissementsNonRappr_0' name='cptTableSelecttaListeEncaissementsNonRappr[]' value='1215725' onclick='setCptSltLstChbx("taListeEncaissementsNonRappr","cptTableSelecttaListeEncaissementsNonRappr[]" )'>
- </td>
- <td align='center' style='width:15%' onclick=''>
- <div class='celluleTable' title='1215725'>1215725</div>
- </td>
- <td align='center' style='width:10%' onclick=''>
- <div class='celluleTable' title='X'>X</div>
- </td>
- <td align='center' style='width:15%' onclick=''>
- <div class='celluleTable' title='4401'>4401</div>
- </td>
- <td align='center' style='width:15%' onclick=''>
- <div class='celluleTable' title='13596932'>13596932</div>
- </td>
- <td align='center' style='width:15%' onclick=''>
- <div class='celluleTable' title='29/10/2012'>29/10/2012</div>
- </td>
- <td align='center' style='width:15%' onclick=''>
- <div class='celluleTable' title='29/10/2012'>29/10/2012</div>
- </td>
- <td align='center' style='width:15%' onclick=''>
- <div class='celluleTable' title='75.00'>75.00</div>
- </td>
- </tr>
|
Ma fonction me retourne donc 75 à chaque fois... Et c'est normal car le ' res ' de ma fonction renvoie toujours le 8eme div.... Je n'arrive pas à partir du TR courant, afin de lui dire de ne regarder que les DIV qui s'y trouvent !
Autrement dit :
Je voudrais renvoyer le 8eme div du TR qui correspond à la case qui a été cochée, pas le 8ieme DIV de la page !
J'arrive à savoir avec ma fonction si une case a été cochée, mais je n'arrive pas à récupérer le montant qui correspond a sa ligne.
Si dans mon tableau, la case de la 5ième ligne a été cochée, je voudrais prendre le montant de cette ligne, donc le div du 5ieme TD, pas le 8ieme DIV de ma page
Si quelqu'un pouvait donc m'aider =)
Voilà tout ce que j'ai tester à présent, et toutes les pistes sur lesquelles j'ai été amener, si cela inspire quelqu'un =)
( rien ne marche dans le code si dessous, où alors je l'exploite mal... )
Code :
- function CAC_Montant(nomFormulaire)
- {
- var montant1 = 0;
- var obj;
- var res = 0;
- var f = document.getElementById(nomFormulaire);
- var longueur = f.length;
- var montantReleve;
- var td = f.getElementsByTagName("td" );
- // montantReleve = f.getElementsByTagName('cptrapproIdReleveBancaire').getAttribute("value" );
- // var div = f.getElementsByTagName("div" );
- for(var i=0; i<longueur; i++)
- {
- if(f.elements[i].checked){
- //obj = f.getElementsByTagName('td')[i];
- //res = document.getElementById('taListeEncaissementsNonRapprLigne'+[i].getAttribute("class" );
- //alert(res);
- //res = parseFloat(f.getElementsByTagName('div')[8].getAttribute("title" ));
- //.getElementsByTagName('div')[5].getAttribute("title" ));
- //alert(res);
-
- //var fils = f.childNodes;
- //var nbFils = fils.length;
- //for(var i = 0; i < nbFils; i++){
- //document(fils[i]);
- //}
- var div = td[i].getElementsByTagName("div" );
- alert("Variable div : " + div);
- //res = div[8].getAttribute("title" );
- //var fils2 = fils.childNodes;
- //res = parseFloat(fils[i].childNodes[8].getAttribute("title" ));
- //res = Number(fils2[8].getAttribute("title" ));
- //res = parseFloat(fils2[8].getAttribute("title" ));
- //for (var i=0; i < div.length; i++)
- //{
- //div[i].style.display="block";
- //alert("O" );
- //}
- var test = document.getElementsByTagName('div').item(0).nodeName;
- alert("Variable test : " + test);
- var ch_res = '';
- var col = document.getElementsByName('div');
- var taille = col.length;
- for (j=0; j<taille; j++){
- ch_res = col.item(j);
- }
- alert(ch_res);
-
- var fils = f.elements[i].childNodes;
- var fils2 = fils.nodeValue;
- alert("Variable fils 2 : " + fils2);
- //res = parseFloat(fils.getAttribute("title" ));
- //alert(res);
- //montant1 = res + montant1;
- }
- }
- alert("Montant : " + montant1);
- return(montant1)
- }
|
Cordialement, Mallik.