« Fuerteventura: inferni e paradisi | Main | Clip Web Gadget non va con Google »
Loop degli INPUT dentro un ID
By Merlinox | December 6, 2007
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
Tags: HTML
Post simili





