Newsgroup: it.comp.lang.javascript
Titolo: Come referenziare campi con nome contenenti spazi?

Supponiamo di avere;
<input type=text name="un campo" value=3>
Se volessi usare name.value, qual è la sintassi?
ho provato [un campo].value, "un campo".value, 'un campo'.value, poi la
fantasia mi si è fermata....

Il Wed, 27 Dec 2000 14:05:08 -0000, A.C. ha scritto.....

Tanto per cominciare eviterei lo spazio, cioè farei NAME="uncampo" invece di 
NAME="un campo". Gli spazi usati in questo contesto mi stanno antipatici 
(IMVHO) e poi sono sempre superflui perché puoi anche fare NAME="UnCampo" o 
NAME="un_campo".
Se così funziona bene, altrimenti ricorda che se hai:
<FORM NAME="modulo"....>
<INPUT TYPE="text" NAME="UnCampo" VALUE="3">
</FORM>
per leggere devi fare document.modulo.UnCampo.value
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
------------------------------------------------------------------------
               Nessun traguardo è abbastanza lontano.
------------------------------------------------------------------------

 per leggere devi fare document.modulo.UnCampo.value
il problema č appunto che se il nome del campo contiene uno spazio, scrivere
ad esempio
document.form[0].nome campo.value
non funziona

 document.form[0].nome campo.value
pardon, document.forms[0].nome campo.value

 scritti con lo spazio.
Ti capisco... ci son passato più di una volta.
Comunque prova, se senza spazio funziona... armati di santa pazienza! :-)
E magari di un buon editor testuale (tipo Homesite o EditPad) che consenta il 
Find&Replace su più documenti aperti contemporaneamente.


> Comunque prova, se senza spazio funziona... armati di santa pazienza! :-)
Di find & replace non se ne parla perchč non posso modificare i sorgenti:
sono delle servlet che generano pagine html, e devo fare dei javascript che
agiscono su queste pagine. I nomi dei campi contenuti nelle pagine generate
contengono uno spazio, quindi me li devo tenere cosě.
Ora dato che in html č possibile scrivere, racchiudendoli da virgolette,
nomi di campo contenenti spazi, di sicuro in javascript esiste una sintassi
per riferirsi a questi campi.
Dato:
<input type=submit name="Conferma Aggiornamento" value="Prova">
Se io ad esempio volessi scrivere :
document.forms[0].Conferma Aggiornamento.click()
qual č la sintassi per indicare che "Conferma Aggiornamento" č un'etichetta
unica indicante il nome di un campo e non due parole staccate?
Ho provato senza successo le seguenti sintassi:
document.forms[0].[Conferma Aggiornamento].click()
document.forms[0]."Conferma Aggiornamento".click()
document.forms[0].'Conferma Aggiornamento'.click()
document.forms[0].(Conferma Aggiornamento).click()

 
Sparo a zero perché non ho altre idee: hai provato con eval()?
p.s. Non sparate sul pianista! :-)))


 ha scritto nel messaggio
news:92cpaa$bur$1...@lacerta.tiscalinet.it...

Credo che per referenziare un nome con spazio debba stare fra apici; le
sintassi che usano gli apici sono
document.forms[0]['un campo'].value
document.forms[0].elements['un campo'].value
Saluti, Paolo

 document.forms[0].elements['un campo'].value
non va...

 p.s. Non sparate sul pianista! :-)))
sto già tirando fuori la pistola...

 ha scritto nel messaggio
news:92fpsb$tqt$1...@lacerta.tiscalinet.it...

Se il campo con name='un campo' (ovviamente tra apici) si trova sulla
prima form della pagina quei codici funzionano con IE5.x, NS4.51 e
NS6.0.
Se non ti funzionano e' meglio che invii tutta la pagina.
Saluti, Paolo