Newsgroup: it.comp.lang.javascript
Titolo: somma tra campi

Ciao a tutti,
continuo ad avere problemi con la semplice somma dinamica di campi.
Non mi somma mai i numeri...ma dove erro...
function SommaBudget(N){
var Temp;
var CampoTotale =
parseInt(document.getElementById('TotaleBudget0').value);
Temp = (CampoTotale+N)
document.getElementById('TotaleBudget0').value = Temp
}

 }
Se:
a) il valore nella textbox è numerico, usa . come separatore decimale
(anche se potrebbe essere irrilevante visto che usi parseInt e non
parseFloat) e non inizia con zero
b) Stesse considerazioni per N
Non può non funzionare.
Forza anche la conversione di N.
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.

Ciao Cristiano...
ancora un errore adesso...mi dice NaN
--------------------------
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<script language="JavaScript" type="text/JavaScript">
function SommaBudget(N){
var Temp;
Temp = parseInt(document.getElementById('TotaleBudget0').value) +
parseInt(N)
//alert(Temp);
document.getElementById('TotaleBudget0').value = Temp
}
</script>
<body>
<form name="form1" method="post" action="">
<span class="TXTarialBluNoPad">&euro;
<input name="BudgetImporto" type="text" class="TXTarialBluNoPad"
id="BudgetImporto" style="width:50px;text-align:right"  maxlength="8"
onBlur="SommaBudget(this.value)">
</span><br>
<span class="TXTarialBluNoPad">&euro;
<input name="BugetVendorImporto" type="text" class="TXTarialBluNoPad"
id="BugetVendorImporto" style="width:50px; text-align:right"
maxlength="8" onBlur="SommaBudget(this.value)">
</span><br>
total
<span class="TXTarialBluNoPad">&euro;
<input name="TotaleBudget" type="text" class="TXTarialBluNoPad"
id="TotaleBudget0" style="width:50px; text-align:right" maxlength="8"
readonly>
  </span>
</form>
<strong></strong>
</body>
</html>

Ciao Cristiano...
ancora un errore adesso...mi dice NaN
--------------------------
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<script language="JavaScript" type="text/JavaScript">
function SommaBudget(N){
var Temp;
Temp = parseInt(document.getElementById('TotaleBudget0').value) +
parseInt(N)
//alert(Temp);
document.getElementById('TotaleBudget0').value = Temp
}


 ancora un errore adesso...mi dice NaN
[CUT]
No so che dirti, la funzione a me sembra giusta (al di là ovviamente dei
dati che riceve in input). Aggiungi un ,10 dopo il primo parametro di
parseInt, giusto per sicurezza.
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

ancora un errore adesso...mi dice NaN
Il problema e' che sommi a TotaleBudget0 che inizialmente non ha un
valore e quindi e' "", inoltre se uno si sposta su un altro campo
senza inserire il valore sul primo sommi sempre "" e non un numero.
 Il vero problema e' un altro, seTotaleBudget0 deve essere il totale
degli altri due campi non puoi incrementarlo ogni volta del valore di
un campo quando passi all'altro, se un utente dopo aver inserito i due
valori torna sul primo e lo cambia secondo te cosa succede?
Devi limitarti alla somma dei campi interessati nella funzione.
'bye

 ancora un errore adesso...mi dice NaN
Non ho ben capito cosa devi fare, il codice che hai scritto anche 
correggendo gli errori di codice puro continua a sommare il valore dei 
campi ad ogni uscita da essi. Quindi se entro ed esco dallo stesso campo 
10 volte me lo somma 10 volte e non penso sia ciň che tu vuoi. Io ho 
sistemato quindi il codice, per la logica applicativa vedi tu.
Fondamentalmente hai un problema di inizializzazione per il campo 
TotaleBudget0 che essendo all'inizio vuoto quando fai il parseInt del 
suo value ottieni NaN e poi te lo porti dietro.
-------------------------
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; 
charset=iso-8859-1"></head>
<script language="JavaScript" type="text/JavaScript">
function SommaBudget(N){
	var Temp;
	var tot = document.getElementById('TotaleBudget0');
	if( isNaN( tot.value ) )
		tot.value = 0;
	Temp = parseInt(tot.value) + parseInt(N);
	tot.value = Temp;
}
</script>
<body>
	<form name="form1" method="post" action="">
		<span class="TXTarialBluNoPad">&euro;
			<input name="BudgetImporto" type="text" class="TXTarialBluNoPad"
				id="BudgetImporto" style="width:50px;text-align:right" maxlength="8"
				onBlur="SommaBudget(this.value)" />
		</span>
		<br>
		<span class="TXTarialBluNoPad">&euro;
			<input name="BugetVendorImporto" type="text" class="TXTarialBluNoPad"
				id="BugetVendorImporto" style="width:50px; text-align:right"
				maxlength="8" onBlur="SommaBudget(this.value)" />
		</span>
		<br>
		total
		<span class="TXTarialBluNoPad">&euro;
			<input name="TotaleBudget" type="text" class="TXTarialBluNoPad"
				id="TotaleBudget0" style="width:50px; text-align:right" maxlength="8"
				readonly="" value="0"/>
		</span>
	</form>
</body>
</html>
--------------------------
Ciao.
	-Ema-