Newsgroup: it.comp.lang.javascript
Titolo: select multipla

Ciao,
devo verificare che l'utente abbia selezionato almeno un elemento di una 
select multipla, il cui nome e' id_lab[] con tanto di parentesi quadre 
(mi servono per far leggere a php il valore multiplo).
Finche' ci metto un nome normale non ci sono problemi ma se metto le 
quadre non riesco a fare il controllo, come posso fare?
// questo funziona
<form>
<select name="id_lab">
<option> ...
document.form.id_lab.length
// questo NO
<form>
<select name="id_lab[]">
<option> ...
document.form.id_lab[].length
grazie
Mauro

 quadre non riesco a fare il controllo, come posso fare?
E' una (stra)faq, che periodicamente ricapita da queste parti:
document.forms[0].elements["id_lab[]"].length
-- 
~ "Quando i morti camminano, signori, bisogna smettere di uccidere.
O si perde la guerra." (Zombie)

 document.form.id_lab[].length
Non capisco come possa funzionare questo document.form ... è una bruttura
del famigerato IE per caso? La hai testata con un browser?
Se non ti interessa compatibilità xhtml 1.1 (e ti interessa compatibilità
con tutti i browser):
<form name='Frm'>
var tuaSelect=document.forms['Frm'].elements['id_lab[]'];
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 document.forms[0].elements["id_lab[]"].length
ma quel document.form.id_lab di cui parla funziona? (so che lui dice di sì,
ma sai, soliti discorsi del tommaso...)
Non ho tempo per fare un test ma mi suona di un male...ricordo IE che cerca
l'oggetto con id="form", ma in questo caso la form non ha id nè name...boh.
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 var tuaSelect=document.forms['Frm'].elements['id_lab[]'];
Grazie mille !!!

 document.forms[0].elements["id_lab[]"].length
grazie, chiedo scusa per la (stra)faq
ciao
Mauro

 l'oggetto con id="form", ma in questo caso la form non ha id nè name...boh.
Direi che l'ha scritto "on the fly", non ha copiato il codice originale.
Del resto quel tag form senza attributi non avrebbe alcun senso nella
pratica. Suppongo che l'abbia messo solo per far vedere che c'è una form.
Probabilmente la sua form avrà name "form" ( che andrebbe giustamente
evitato di fare).
-- 
~ "When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 ... perche' dici che non dovrebbe andare?
Lo dicevo perché hai postato <form> e non capivo come poteva beccarla (ma
con IE non si sa mai...). 
Mai usare nomi riservati, comunque (ricordo un thread qualche tempo fa, se
non ricordo male con id="form" con firefox succede un macello). io ti
consiglio vivamente di cambiare il name con un nome qualsiasi che non sia
riservato.
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.

 riservato.
Ok, nome cambiato, ma parlando in generale, la sintassi
document.nome_della_form.nome_del_modulo.proprieta
e' valida sempre per tutti i browser oppure no?
E quella che mi hai consigliato tu
document.forms['nome_della_form'].elements['nome_del_modulo']
e' valida sempre per tutti i browser oppure no?
ancora grazie mille.
ciao
Mauro

 ... perche' dici che non dovrebbe andare?
Non è che non va, è semplicemente che crea confusione. Dato che esiste già
una collection di document chiamata "forms", una form chiamata "form" non è
il massimo della chiarezza.
-- 
~ Il lavoro è prezioso. Non essere egoista! Lascialo agli altri!

 document.forms['nome_della_form'].elements['nome_del_modulo']
E' equivalente.
-- 
~ Se il destino è contro di noi, peggio per lui!

 e' valida sempre per tutti i browser oppure no?
Sì (io uso sempre la seconda, ma è solo abitudine, esplicitando a me sembra
più chiara), a meno che come nel tuo caso il nome è "particolare" (capita
spesso che arrivi da php e hai quindi le [], in quel caso la prima sintassi
non puoi usarla perché javascript lo considererebbe un arrary...)
-- 
"qualcuno è andato per età
 qualcuno perchè già dottore
 e insegue una maturità, si è sposato, fa carriera
 ed è una morte un po' peggiore"
									    F.G.