Posta il codice (e non dimenticare di metterlo tra i tag CODE)
Posta il codice (e non dimenticare di metterlo tra i tag CODE)
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
<code>
<!- PAGINA HTML ->
<!- DOCTYPE HTML ->
<html>
<head>
<title>PROVA</title>
<STYLE TYPE="text/css">
<!--
TD{font-family: Verdana; font-size: 10pt}
--->
</STYLE>
<script type="text/javascript">
var riga=0;
/* funzione Add */
function Add(id_table)
{
riga=riga+1;
var table = document.getElementById(id_table);
var tbody = table.getElementsByTagName('tbody')[0];
var tr = document.createElement("tr");
for(var i=0; i<7; i++)
{
if(i!=4)
{
var td = document.createElement('td');
var tx = document.createElement("input");
if(i>4)
{
tx.type="text";
tx.readOnly="true";
tx.name="id"+i+riga;
tx.value=tx.name;
}
else
{
tx.type="text";
tx.value="0";
tx.name="id"+i+riga;
tx.value=tx.name;
}
td.appendChild(tx);
tr.appendChild(td);
}
else
{
td = document.createElement('td');
tx = document.createElement("select");
tx.options[tx.length] = new Option('abete kvh');
tx.options[tx.length] = new Option('abete lamellare');
td.appendChild(tx);
tr.appendChild(td);
}
}
tbody.appendChild(tr);
}
/* funzione calcola */
function calcola()
{
selIdx = document.forms[0].materiale.selectedIndex;
switch (selIdx)
{ case 0: { price=325;
break;
}
case 1: { price=396;
break;
}
}
metricubi=form1.numero.value*(form1.larg.value/100)*(form1.alt.value/100)*(form1.lung.value/100);
form1.mc.value=eval(metricubi);
for(var k=1;k<riga+1;k++)
{ var x = 1;
for(var j=0;j<4;j++)
{ var nome="id"+j+k;
alert(nome);
x = x * parseFloat(document.getElementById(nome).innerText );
alert(x);
}
var destino = "id5"+k;
document.getElementById(destino).innerText = x;
}
/*for(var k=1;k<riga+1;k++)
{ for(var j=0;j<4;j++)
{ var nome="id"+j+k;
alert(nome);
}
}*/
}
</script>
</head>
<body>
<form name="form1">
<font face="Verdana" size="3">
<TABLE borderColor=blue cellSpacing=0 cellPadding=10 width="75%"
align= center border=4>
<tr><td>
<br>
<p align="center">
<font size="3">
<b>- PROVA-<br>
</b></font></p><br>
<hr color="blue">
<p align="center">
<br>
<b>1) Inserire dimensioni legname e numero pezzi</b>
<br>
<table border="1" align="center" id="my_table">
<tr>
<td align="center">n° Pezzi:</td>
<td align="center">Larghezza (cm):</td>
<td align="center">Altezza (cm):</td>
<td align="center">Lunghezza (cm):</td>
<td align="center">Materiale (lam/kvh):</td>
<td align="center">Metri cubi :</td>
<td align="center">Importo spese ():</td>
<td align="center"><input type="button" value="Add" onclick="Add('my_table')" /></td>
</tr>
<tr>
<td align="center"><input type="text" name="numero" id="numero" value="0"></td>
<td align="center"><input type="text" name="larg" id="larg" value="0"></td>
<td align="center"><input type="text" name="alt" id="alt" value="0"></td>
<td align="center"><input type="text" name="lung" id="lung" value="0"></td>
<td><select name="materiale" onchange="changeTest1()">
<option value="1">abete kvh</option>
<option value="2">abete lamellare</option>
</select></td>
<td align="center"><input type="text" name="mc" id="mc" readOnly></td>
<td align="center"><input type="text" name="importo" id="importo" readOnly></td>
</tr>
</table>
<br><br>
<input type="button" value="Calcola importo spese travi" onclick="calcola();" />
</font>
</p>
<br><br>
<br><br>
<hr color="blue">
<p align="right">
<b>
IMPORTO SPESE TOTALI:<input type="text" name="totale" id="totale" readonly><br><br>
</b>
</p>
<br>
<hr color="blue">
<p align="right">
</font>
</p>
</td></tr><table>
</form>
</body>
</html>
</code>
Grazie per la pazienza.
![]()
Non hai letto il mio penultimo messaggio.
var destino = "id5"+k; <= forse il problema è dovuto al valore di destino. Controlla che sia l'id che desideri. Poi ne riparliamo.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Ciao, sì, il risultato della moltiplicazione va messo in id51,id52,id53,id54,id55 ecc. Ho capito il codice che mi hai postato, non capisco perche' mi butta fuori dal for. Sembra legga id01 e poi esca. Boh??
Copia il sorgente della pagina e postalo.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Ok, grazie. Porta pazienza..
codice:<script type="text/javascript"> var riga=0; /* funzione Add */ function Add(id_table) { riga=riga+1; var table = document.getElementById(id_table); var tbody = table.getElementsByTagName('tbody')[0]; var tr = document.createElement("tr"); for(var i=0; i<7; i++) { if(i!=4) { var td = document.createElement('td'); var tx = document.createElement("input"); if(i>4) { tx.type="text"; tx.readOnly="true"; tx.name="id"+i+riga; tx.value=tx.name; } else { tx.type="text"; tx.value="0"; tx.name="id"+i+riga; tx.value=tx.name; } td.appendChild(tx); tr.appendChild(td); } else { td = document.createElement('td'); tx = document.createElement("select"); tx.options[tx.length] = new Option('abete kvh'); tx.options[tx.length] = new Option('abete lamellare'); td.appendChild(tx); tr.appendChild(td); } } tbody.appendChild(tr); } /* funzione calcola */ function calcola() { selIdx = document.forms[0].materiale.selectedIndex; switch (selIdx) { case 0: { price=325; break; } case 1: { price=396; break; } } metricubi=form1.numero.value*(form1.larg.value/100)*(form1.alt.value/100)*(form1.lung.value/100); form1.mc.value=eval(metricubi); imp=price*form1.mc.value; form1.importo.value=eval(imp); for(var k=1;k<riga+1;k++) { var x = 1; for(var j=0;j<4;j++) { var nome="id"+j+k; alert(nome); x = x * parseFloat(document.getElementById(nome).innerText ); alert(x); } var destino = "id5"+k; document.getElementById(destino).innerText = x; } }
Questo problema l'ho risolto, ho solo cambiato innerText con value e alla creazione della input text dinamica, anzichè indirizzare il nome ho indirizzato l'id. E' per quello che usciva dal for. Grazie badaze, sei un grande.![]()
Ora ho inserito una funzione che avevo trovato in internet che non permette l'inserimento di determinati caratteri.
La funzione va', lho provata con una input text non dinamica e funziona.
Pero' non so come mai ma in quelle dinamiche non funziona.
Come si richiama l'evento onkeyup nelle input text dinamiche??
Io ho scritto
e la funzione è questa:codice:tx.onkeyup="char_consentiti(this)";
Dove sbaglio??codice:function char_consentiti(campo) { // espressione regolare var re = new RegExp("^[0-9\.]+$", ""); // recupero il valore del campo var valore = campo.value; // ciclo le lettere del valore e le verifico for ( var i = 0; i < valore.length; i++ ) { // se non è un carattere consentito if (!valore.charAt(i).match(re)) { // aggiorno il valore del campo campo.value = valore.substring(0, i); // esco return; } } }