Newsgroup: it.comp.lang.javascript
Titolo: Problemi con validazione xhtml

Ciao a tutti, ho il problema di non potere validare la pagina in xhtml
perchè
nel tag body ho : <body onLoad="StartClock24()"> ovvero un semplice
orologio
che viene visualizzato da : <form name="clock" action="">
                  <input type="text" name="showTime" size="7" class="ora"/>
               </form>
e nell'head : <script type="text/javascript">
<![CDATA[
function showFilled(Value) {
  return (Value > 9) ? "" + Value : "0" + Value;
}
function StartClock24() {
  TheTime = new Date;
  document.clock.showTime.value = showFilled(TheTime.getHours()) + ":" +
showFilled(TheTime.getMinutes()) + ":" + showFilled(TheTime.getSeconds());
  setTimeout("StartClock24()",1000)
}
]]>
</script>
Il Validatore xhtml protesta per il tag body.
Come fare?
Grazie a tutti
Luca
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 nel tag body ho : <body onLoad="StartClock24()"> ovvero un semplice
[cut]
<body onload="">
        ^
tag e attributi tutti in lowercase
-- 
E scriverai ad un altro senza mai scriverne il nome,
e dirai a lui che detesti esser messa in imbarazzo,
e che hai smesso di credere all'amicizia da tempo.

 Come fare?
Intanto dicci che DTD usi, scrivi il messaggio d'errore che riporta, o
meglio ancora dacci l'url relativo alla pagina incriminata.
-- 
~ "Nell'anno 1969 è bastata la potenza di calcolo di due Commodore 64 per
mandare con successo una navicella sulla Luna. Nell'anno 2003 è
necessario un Pentium 4 a 2000 Mhz per far funzionare Windows XP.
Qualcosa deve essere andato storto."

 meglio ancora dacci l'url relativo alla pagina incriminata. 
 
Grazie, era semplicemente onLoad che andava in lowercase.Sono uno str... 
il DTD è xhtml1.0 transitional. 
Ho provato con xhtml 1.1 ma se tolgo il name="clock" dal form l'orologio 
non si vede, perchè penso, nella funzione c'è  
document.clock.showTime.value = 
 
Come fare? 
uso Linux e Firefox. 
 
Grazie 


 document.clock.showTime.value = 
Se è la prima form nella pagina puoi usare
 document.forms[0].elements['showTime'].value
Altrimenti puoi andare via id per beccare il riferimento alla form:
 
http://www.criosoftware.it/default14.aspx
-- 
"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.

 Come fare? 
Primo, se vuoi semplicemente fare un "orologio" non usare un campo input,
ma un semplice elemento (span, div, e così via).
Ovvero, ponendo di avere nel codice qualcosa del tipo:
	<div id="myclock">&nbsp;</div>
il tuo:
	document.clock.showTime.value =
diventerà:
	document.getElementById("myclock").firstChild.nodeValue = 
Per quanto riguarda invece recuperare il riferimento ad una form senza far
uso del name ci sono diversi modi:
	document.forms[0].showTime.value = 
	document.getElementsByTagName("form")[0].showTime.value=
	document.getElementById("clock").showTime.value=
Le prime due istruzioni sono pressoché equivalenti da un punto di vista
logico: document.forms contiene una lista di tutte le form contenute nel
documento, mentre getElementsByTagName restituisce la lista di tutti i tag
"form" presenti nel documento.
La differenza sta nel fatto che getElementsByTagName lo puoi usare anche
per altri tag; ed è contestuale: ovvero se lo utilizzi all'interno di un
altro riferimento che non sia document, ti restituisce tutti gli elementi
aventi il tag specificato che sono *contenuti* in tale riferimento e non in
tutto il documento.
"getElementById()" ti restituisce il riferimento ad un oggetto in base
all'attributo ID che - come dice il nome - deve essere univoco (a
differenza del "name"). Quindi invece di avere:
	<form name="clock" action="">
avresti:
	<form id="clock" action=""">


Con persone come voi è un vero piacere frequentare questo ng.
Grazie
Luca.
