Newsgroup: it.comp.lang.javascript
Titolo: visualizzare o meno un getElementById

ho questo problema il lunedi mattina:
 
se questo campo ha un valore <input name="Prezzo_unitario_1" 
id="Prezzo_unitario_1" type="hidden" value="<?php echo $Prezzo_unitario1 
?>" />
 
allora questo campo dove diplay:none me lo toglie e mi rende visibile 
questo input
 
<input type="text" name="PrezzoUnitario1" id="PrezzoUnitario1" 
class="formfield calcvalue" readonly="readonly" style="display:none;" 
value="<?php echo $Prezzo_unitario1 ?>" />
 
mi sono creato questo piccolo script
 
<script type="text/javascript">
var acquisto1 = document.getElementById('Prezzo_unitario_1').value;
	if (!isNaN(acquisto1) && acquisto1 != 0)
		document.getElementById('PrezzoUnitario1').value = acquisto1;
	</script>
 
ma purtroppo mi da questo errore:
TypeError: document.getElementById(...) is null
var acquisto1 = document.getElementById('Prezzo_unitario_1').value;
 
dove ho sbagliato?
 


Non  puoi usare php per gestire la visualizzazione del campo nel momento
del caricamento della pagina?

 document.getElementById('Prezzo_unitario_1').value;
 
L'errore è chiaro: non trova quell'id. Quindi, se è vero che lo hai 
nell'html, potresti averne più di uno (firefox in tal caso se ben ricordo 
li ignora tutti, una volta IE prendeva il primo che trovava, ora non so)


ho modificato cosi:
<input name="Prezzo_unitario_i" id="Prezzo_unitario_i" type="hidden" 
value="0.99" />
 
<script type="text/javascript">
var acquistoi = document.getElementById('Prezzo_unitario_i').value;
if (!isNaN(acquistoi) && acquistoi != 0){
   document.getElementById('PrezzoUnitario1').value = acquistoi;
   document.getElementById('PrezzoUnitario1').style.display="";
}
 
</script>
 
ma mi da sempre questo errore
TypeError: document.getElementById(...) is null
var acquistoi = document.getElementById('Prezzo_unitario_i').value;

 null var acquistoi = document.getElementById('Prezzo_unitario_i').value;
 
Stessa cosa: quanti oggetti hai con id="Prezzo_unitario_i"?


ho solo quello ho controllato e ricontrollato
 


Stai quindi cercando di accedere all'elemento prima che questo esista 
effettivamente nel DOM?
 
Esegui il tuo codice a pagina caricata, ad esempio:
 
window.onload = function () {
     // qui il tuo codice
}
 
P.S. Ho visto nel tuo codice che hai elementi con name == id: non è una 
buona idea in generale perché hanno significati e scopi diversi e 
oltretutto possono riservarti sorprese con qualche vecchio browser.
 
Non mi dilungo sull'argomento perché se fai una ricerca qui sul gruppo 
vedrai che Zer0 ha più e più volte rimarcato la cosa entrando nel dettaglio.


sto provando e riprovando 
riposto il codice se puoi aiutarmi
 
<input name="Prezzounita" id="Prezzounitario" type="hidden" value="0.99" />
 
<script>
 
var acquisto = document.getElementById('Prezzounitario').value;
if (!isNaN(acquisto) && acquisto != 0) {
	document.getElementById('PrezzoComunitario').style.display = "";
} else {
	document.getElementById('PrezzoComunitario').style.display = "none";
}
 
</script> 
 
<input type="text" name="PrezzoUnit" id="PrezzoComunitario" class="formfield calcoffer calcreadonly" readonly="readonly" value="0.99" />
 
quello che vorrei fare è:
se Prezzounitario ha il valore allora PrezzoComunitario style="" altrimenti style="display:none;"

 altrimenti style="display:none;"
 
ok ... e l'errore adesso qual è? Se sempre lo stesso ti abbiamo già 
risposto. Metti online tutto l'html se sostieni che sia tutto ok.


pubblico html 
 
<form name="stampa" method="post" action="invoice/stampa.php?PDF&lang=<?php echo $Language ?>" target="_blank">
 
questo imput puo avere un value come non averlo 
<input name="Quantitaa2" id="Quantita2" type="hidden" value="<?php echo $Quantita2 ?>" />
 
<script>
var quantita2 = document.getElementById('Quantita2');
if(document.getElementById('Quantita2').value == ''){
   document.getElementById('TDquantita2').style.display = "none";
}
else{
   document.getElementById('TDquantita2').style.display = "";
}
</script>
<table>
<tr>
<td id="TDquantita2"><?php echo $Quantita2 ?></td>
</tr>
</table>
</form>
 
 

 var quantita2 = document.getElementById('Quantita2');
 
E perché lo referenzi se poi non lo usi?
 
A parte questo, questo script deve funzionare. Quindi, come dicevo: a) 
qual è l'errore? b) posta (non qua, in rete, così si può vedere 
funzionante) *L'INTERA PAGINA* (e non solo un pezzo)