Loop degli INPUT dentro un ID

Mi è capitato di dover gestire (in asp…) un software per le disdette di prodotti e sottoprodotti. Mi hanno chiesto di fare in modo che nella scheda di compilazione, quando viene disdetto un prodotto, anche i sotto prodotti devono essere disdetti.

 

La tabella che io avevo era fatta così:

<form id="myForm">

prodotto aggiungi
nome prodotto
– sottoprodotto
– sottoprodotto
nome prodotto
– sottoprodotto
nome prodotto
   

</form>

 

Quindi nel loop dei prodotti facciamo in modo che i sottoprodotti, o meglio le righe (TR) dei sottoprodotti siano raggruppate usando:

<TBODY ID="sottoprodotto124">---</TBODY>

 

Dove 124 è l’id del prodotto!

 

Inserimento quindi nei checkbox dei Prodotti (non sottoprodotti) una chiamata ad una funzione js:

onClick="checkSottoprodotti(this,'prodottiAdd<%=prg_bs%>');"

 

Vediamo quindi la funzione checkSottoprodotti.

function myLayer (x){
//individuo l'oggetto
if(document.layers){ // browser="NN4";
lay=document.layers[x];
}
if(document.all){ // browser="IE";
lay=eval("document.all." + x);
}
if(!document.all && document.getElementById){ // browser="NN6+ or IE5+ if you're willing to dump the !document.all stuff";
lay=document.getElementById(x);
}
return lay;
}
function checkSottoprodotti(inp,n){
//recupero valore del prodotto
var valore = inp.checked;
s = myLayer(n);
s = s.getElementsByTagName("input");
for (i=0;i<s.length;i++){
//imposto i figli
s[i].checked=valore;
}
}

Capito? Individuo il gruppo di righe tramite l’id che abbiamo inserito prima, creato dinamicamente con il loop, quindi tramite getElementsByTagName loopo tutti gli input all’interno di quel id 🙂

Loading Facebook Comments ...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *