Nell'applicazione che sto sviluppando, ho bisogno di poter cancellare contemporanemanete tre righe in una tabella alla pressione di un tasto, ad esempio "aggiungi"... Attenzione:In queste 3 righe ci sono diverse celle, ciascuna con all'interno un campo di input.
Riporto qui di seguiti il codice della tabella & allego printscreen della tabella:
N.B.: la funzione "inserisci()" ha il problema che ogni riga che viene inserita appare con i campi compilati esattamente come la precedente (io voglio invece una riga con i cmapi vuoti!!!), mentre la funzione cancella(), cancella solo una cella della prima riga!!!!! .
function aggiungi() {
var valore=0;
var totscarto;
var tmp;
if (document.createElement && document.getElementsByTagName) { // controllo accesso alle funzionalità DOM
tabella=document.createElement('TABLE');
corpo=document.getElementById("modello").parentNod e;
riga=document.createElement('TR');
cella=document.createElement('TD');
valore1=document.inserisci.numdif.value;
++valore1;
valore=valore1+1;
document.inserisci.numdif.value=valore1;
valore2=document.inserisci.numdifcanc.value;
valore=(valore*1)-(valore2*1);
voce=document.getElementById("qta");
voceclone=voce.cloneNode(true);
nome1='a'+valore;
voceclone.firstChild.firstChild.setAttribute("valu e","");
voceclone.firstChild.firstChild.setAttribute("name ",nome1);
riga.appendChild(voceclone);
voce=document.getElementById("d1l");
voceclone=voce.cloneNode(true);
nome2='b'+valore;
voceclone.firstChild.firstChild.setAttribute("name ",nome2);
riga.appendChild(voceclone);
voce=document.getElementById("d2l");
voceclone=voce.cloneNode(true);
nome3='c'+valore;
voceclone.firstChild.firstChild.setAttribute("name ",nome3);
riga.appendChild(voceclone);
voce=document.getElementById("tasti");
voceclone=voce.cloneNode(true);
nome5=valore;
voceclone.firstChild.setAttribute("name",nome5);
//voceclone.firstChild.setAttribute("value",nome5);
riga.appendChild(voceclone);
corpo.appendChild(riga);
corpo2=document.getElementById("modello2").parentN ode;
riga2=document.createElement('TR');
cella2=document.createElement('TD');
voce=document.getElementById("rot");
voceclone=voce.cloneNode(true);
nome4='d'+valore;
voceclone.firstChild.setAttribute("name",nome4);
riga.appendChild(voceclone);
riga2.appendChild(voceclone);
corpo2.appendChild(riga2);
corpo3=document.getElementById("modello3").parentN ode;
riga3=document.createElement('TR');
cella3=document.createElement('TD');
voce=document.getElementById("ins");
voceclone=voce.cloneNode(true);
riga.appendChild(voceclone);
riga3.appendChild(voceclone);
corpo3.appendChild(riga3);
}
}
function cancella(nome)
{
alert(nome);
var esp1;
var esp;
var k;
var fine=0;
tabella=document.getElementById("tab_som").firstCh ild;
nome=--nome+1;
quantita = tabella.childNodes[nome].firstChild.firstChild.firstChild.value
document.inserisci.qtaanalizzata.value=document.in serisci.qtaanalizzata.value-quantita*1;
tabella.removeChild(tabella.childNodes[nome]);
valore2=document.inserisci.numdif.value;
valore1=document.inserisci.numdifcanc.value;
++valore1;
document.inserisci.numdifcanc.value=valore1;
fine=(valore1*-1)+(valore2*1)+2;
for (k=nome; k<fine; k++) {
tabella.childNodes[k].lastChild.firstChild.setAttribute("name",k);
//tabella.childNodes[k].lastChild.firstChild.setAttribute("value",k);
}
}
<TABLE id=tab_som>
<TR id=modello>
<TD id=qta rowspan=2>Prog.:<INPUT size=6 maxlength=6 name="a1" value=""></TD>
<TD id=d1l rowspan=2>Resp.:<INPUT size=6 maxlength=6 name="b1" value=""></TD>
<TD id=d2l>Data:<INPUT size=6 maxlength=6 name="c1" value=""></TD>
<TD id=tasti rowspan=3><input type = "button" value ="I" onClick="aggiungi()">
<input type="button" value ="C" name="1" onClick="cancella(this.name)"></TD>
</TR>
<TR id=modello2>
<TD id=rot>Data<INPUT size=6 maxlength=6 name="d1" value=""></TD>
</TR>
<TR id=modello3>
<TD id=ins colspan=3><TEXTAREA name="azione" rows="4" cols="78" wrap="virtual" onBlur="sostituisci_caratteri()"></TEXTAREA>
</TD>
</TR>
</TABLE>