Newsgroup: it.comp.lang.javascript
Titolo: selezionare automaticamente checkbox

ciao all people,
ho fatto questo js che seleziona automaticamente le checkbox in unform:
 function checkall(checked) {
    len = document.form1.elements.length;
    var i = 0;
    for(i = 0; i < len; i++) {
        document.form1.elements[i].checked = checked;
    }
}
adesso pero' vorrei selezionare le checkbox solo in base all'id:
<input name="prodotto[]" id="musicassette" type="checkbox"
value="cocciante">
<input name="prodotto[]" id="musicassette" type="checkbox" value="rossi">
<input name="prodotto[]" id="video" type="checkbox" value="britne">
<input name="prodotto[]" id="video" type="checkbox" value="pink floid">
con la funzione sopra seleziono tutte queste voci... come posso fare per
selezionare per esempio solo musicassette?
grazie mille

Hai dato a tutte le input lo stesso name, e hai dato degli id diversi ma non
univoci...
almeno l'id deve essere univoco in un documento html, ti consiglio di
rivedere la tua form e cambiargli id e, se possibile, anche il name.
Dopodiché ti riferisci all'id con
document.getElementById('tuoid').checked=true;

 <input name="prodotto[]" id="musicassette" type="checkbox" value="rossi">
L'ID, come dice il concetto stesso, DEVE essere univoco. Uno per elemento,
non puoi duplicarlo.
Il che significa che puoi avere qualcosa del tipo:
<input name="prodotto[]" id="musicassette01" type="checkbox" />
<input name="prodotto[]" id="musicassette02" type="checkbox" />
etc.
Per rispondere alla tua domanda, potresti fare qualcosa del tipo:
function checkall(bChecked,szSub){
	szSub=szSub||"";
	var els=document.form1.elements;
 
	for(var i = 0; i < els.length; i++) {
		if (els[i].type=="checkbox" &&
els[i].id.substring(0,szSub.length)==szSub)
			els[i].checked=bChecked;
	}
}
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 ha scritto nel messaggio
news:bq4hcc$1v3srv$1...@ID-147253.news.uni-berlin.de...

purtroppo non posso cambiare il name, poiche' quando passo il post, devo
passare le checkbox sotto forma di array.
Cosa succede se tengo gli id non univoci?

Bentornato caro Zer0, ogni tanto riemergi né?
Non riscomparire subito però stavolta...
Ci sentiamo via E-Mail.

> Cosa succede se tengo gli id non univoci?
Che non ti servono a niente, puoi anche toglierli

 Ci sentiamo via E-Mail.
Okay, vediamo chi e' piu' veloce :P


> > Bentornato caro Zer0, ogni tanto riemergi né?
Anch'io sentivo un po' la mancanza...
Posso chiederti 2 aiuti:
news:m1mwb.84169$
hV.32...@news2.tin.it
news:slLwb.6256$
AX1.2...@news1.tin.it

 news:slLwb.6256$
AX1.2...@news1.tin.it
Sono post che avevo gia' letto, e sinceramente ti posso dire una cosa: Ci
sono gia' passato all'epoca (soprattutto per il discorso modale) ed uno dei
miei vecchissimi script (ormai non piu' valido, si parla di epoca IE 4/NS
4) cercava di simulare alla meno peggio le finestre in primo piano..
.. alla fine, te lo dico per esperienza, cambi filosofia.. un conto e' se
devi fare web-application, ma a quel punto usi altri mezzi (se hai solo IE
non ci son problemi, con Netscape/Mozilla usi script firmati, etc), ma per
il web una finestra modale non ha semplicemente senso d'essere, va contro
la filosofia stessa dell'usabilita' e accessibilita' e liberta' utente che
il web dovrebbe avere (l'uso del condizionale e' d'obbligo ovviamente).
Bada bene, questo e' solo il mio punto di vista, che cmq ho maturato col
tempo.
Cosi' come i problemi inerenti il posizionamento della finestra
relativamente alla barra di "windows".. Il web dovrebbe essere platform
indipendent, alcuni SO neanche hanno la "barra" cosi' com'e' concepita da
Microsoft.. In realta' il tuo problema inerente alla barra e' dato da un
"errore" concettuale di alcuni browser, ovvero quello di poter posizionare
da codice una finestra "al di fuori" della client area.. cosa che non
dovrebbe essere permessa.


 dovrebbe essere permessa.
Esatto, infatti tanto per cambiare MZ e' quello che si comporta meglio, mi
sembra che cerchi di fare proprio questo!

 sempre domandato ma come si fa...
http://devedge.netscape.com/library/manuals/2000/javascript/1.3/guide/sec.h
tml#1015077
L'unico uso che ne ho mai fatto, e' stato espandere i privilegi su Mozilla
per "spippolare" in XUL.
Cmq e' strano che tu debba fare una web-application per una intranet
cross-browser, di solito per risparmiare (sui tempi, quindi sui costi)
tendono a considerare solo lo standard in uso presso la propria societa'
(che spesso e volentieri si traduce in "IE").


 (che spesso e volentieri si traduce in "IE").
Si tratta di un gioco di carte JS/HTML. E mi interessava renderlo
cross-browser per quei pochi amici furbi che non usano IE e anche in visione
di un altro utilizzo futuro...

 di un altro utilizzo futuro...
Aah.. sempre il solito gioco di carte famoso di cui si parlo' all'epoca? :)
Ma non hai ancora cambiato tecnologia? ;P E guarda che te lo dice uno a cui
JS (se non si fosse capito) piace davvero.. :)


 JS (se non si fosse capito) piace davvero.. :)
Eh, gia', anche a me!
E poi c'e' da dire che il gioco e'/era talmente a buon punto (infatti mi sto
concentrando sulle finezze), che mi viene da piangere abbandonare questa
strada, che quando l'ho intrapresa ero conscio di dove mi avrebbe portato e
la decisione era stata abbastanza cogitata e responsabile...