Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    Selezionare e deselezionare checkboxes

    Ciao a tutti.

    Avrei bisogno del vs. prezioso aiuto; questa è una pagina htm composta da checkbox:

    codice:
    <form.... >
    
    <input type="checkbox" name="A" value="A">A
    <input type="checkbox" name="IN" value="IN">IN
    
    <input type="checkbox" name="IS" value="IS">IS
    
    <input type="checkbox" name="PA" value="PA">PA
    
    
    <input type="checkbox" name="M" value="M">M
    <input type="checkbox" name="IN" value="IN">IN
    
    <input type="checkbox" name="IS" value="IS">IS
    
    <input type="checkbox" name="PA" value="PA">PA
    
    
    <input type="checkbox" name="T" value="T">T
    <input type="checkbox" name="IN" value="IN">IN
    
    <input type="checkbox" name="IS" value="IS">IS
    
    <input type="checkbox" name="PA" value="PA">PA
    
    
    </form>
    Ho tre macrocategorie A, M e T che raccolgono delle microcategorie.

    Avrei bisogno di una funzione javascript che:

    1) quando si entra in questa pagina htm devo essere abilitati soltanto i checkbox delle macrocategorie A, M e T; i checkbox delle microcategorie devono essere tutti disabilitati;

    2) quando seleziono il checkbox della macrocategoria A, i checkboxes M e T si devono disabilitare e viceversa;

    3) se seleziono il checkbox della macrocategoria A si devono abilitare soltanto i checkbox delle microcategorie corrispondenti alla macrocategoria A;

    4) se seleziono il checkbox della macrocategoria M si devono abilitare soltanto i checkbox delle microcategorie corrispondenti alla macrocategoria M;

    5) se seleziono il checkbox della macrocategoria T si devono abilitare soltanto i checkbox delle microcategorie corrispondenti alla macrocategoria T;

    6) almeno un checkbox della macrocategoria ed uno delle microcategorie devono essere selezionati altrimenti il form non deve partire.

    Potete aiutarmi?
    grazie

  2. #2
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    up

  3. #3
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Forse con degli esempi mi spiego meglio perchè non ci riesco:

    La pagina htm è questa:
    http://www.avia-it.com/testaruba/

    Esempi:
    1) quando si entra in questa pagina htm devo essere abilitati soltanto i checkbox delle macrocategorie A, M e T; i checkbox delle microcategorie devono essere tutti disabilitati: http://www.avia-it.com/testaruba/image_1.jpg

    2) quando seleziono il checkbox della macrocategoria A, i checkboxes M e T si devono disabilitare e viceversa:http://www.avia-it.com/testaruba/image_2.jpg

    3) se seleziono il checkbox della macrocategoria A si devono abilitare soltanto i checkbox delle microcategorie corrispondenti alla macrocategoria A;
    6) almeno un checkbox della macrocategoria ed uno delle microcategorie devono essere selezionati altrimenti il form non deve partire:
    http://www.avia-it.com/testaruba/image_3.jpg

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non puoi "disattivare" un checkbox... dopo non potresti selezionarlo.

    ... e i nomi degli oggetti non possono avere lo stesso name... in tal caso per referenziarli dovresti usare degli ID univoci.

    Una soluzione (sfruttando anche il nome dei checkbox)
    codice:
    <script>
    function uno(obj) {
    	v = obj.checked;
    	n = obj.name;
    	f = obj.form;
    	f.A.checked = f.M.checked = f.T.checked = false;
    	f.A_IN.disabled = f.A_IS.disabled = f.A_PA.disabled = (n!='A');
    	f.M_IN.disabled = f.M_IS.disabled = f.M_PA.disabled = (n!='M');
    	f.T_IN.disabled = f.T_IS.disabled = f.T_PA.disabled = (n!='T');
    	obj.checked = true;
    }
    function due(obj) {
    	n = (obj.A.checked)?'A':(obj.M.checked)?'M':'T';
    	rv = (obj.elements[n+'_IN'].checked || obj.elements[n+'_IS'].checked || obj.elements[n+'_PA'].checked);
    //	alert(rv);
    	return rv;
    }
    </script>
    
    ...
    ...
    
    <form name=myForm onsubmit="return due(this)">
    
    <input type="checkbox" name="A" value="A" checked onclick="uno(this)">A
    <input type="checkbox" name="A_IN" value="IN">IN
    
    <input type="checkbox" name="A_IS" value="IS">IS
    
    <input type="checkbox" name="A_PA" value="PA">PA
    
    
    <input type="checkbox" name="M" value="M" onclick="uno(this)">M
    <input type="checkbox" name="M_IN" value="IN">IN
    
    <input type="checkbox" name="M_IS" value="IS">IS
    
    <input type="checkbox" name="M_PA" value="PA">PA
    
    
    <input type="checkbox" name="T" value="T" onclick="uno(this)">T
    <input type="checkbox" name="T_IN" value="IN">IN
    
    <input type="checkbox" name="T_IS" value="IS">IS
    
    <input type="checkbox" name="T_PA" value="PA">PA
    
    
    <input type="submit">
    </form>
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Grazie Br1, ma non riesco a farlo funzionare

    Ti posto il codice completo della pagina; i valori dei checkbox sono presi da un db mysql.

    codice:
    <script language="javascript" type="text/javascript">
    <!--
    
    function uno(obj) {
    	v = obj.checked;
    	n = obj.name;
    	f = obj.form;
    	f.A.checked = f.M.checked = f.T.checked = false;
    	
    	f.A_IN.disabled = f.A_IS.disabled = f.A_PA.disabled = (n!='A');
    	f.M_IN.disabled = f.M_IS.disabled = f.M_PA.disabled = (n!='M');
    	f.T_IN.disabled = f.T_IS.disabled = f.T_PA.disabled = (n!='T');
    	obj.checked = true;
    }
    
     
    //-->
        </script>
    
    
    <form name=myForm onsubmit="return due(this)">
    
    <input type="checkbox" name="tipo_nodo" value="A" checked onclick="uno(this)">A           
    <input type="checkbox" name="tipo_nodo" value="M" onclick="uno(this)">M          
    <input type="checkbox" name="tipo_nodo" value="T" onclick="uno(this)">T
    
    
    <input type="checkbox" name="A_tipo" value="IS">IS
    
    <input type="checkbox" name="A_tipo" value="PA">PA
    
    <input type="checkbox" name="A_tipo" value="PR">PR
    
    <input type="checkbox" name="A_tipo" value="OF">OF
    
    <input type="checkbox" name="A_tipo" value="SC">SC
    
    <input type="checkbox" name="A_tipo" value="SO">SO
    
    <input type="checkbox" name="A_tipo" value="SZ">SZ
    
    <input type="checkbox" name="A_tipo" value="TA">TA>br>
    <input type="checkbox" name="A_tipo" value="TV">TV
    
    <input type="checkbox" name="A_tipo" value="BO">BO
    
    <input type="checkbox" name="A_tipo" value="NE">NE
    
    
    <input type="checkbox" name="M_tipo" value="BA">BA
    
    <input type="checkbox" name="M_tipo" value="BP">BP
    
    <input type="checkbox" name="M_tipo" value="CD">CD
    
    <input type="checkbox" name="M_tipo" value="CV">CV
    
    <input type="checkbox" name="M_tipo" value="GI">GI
    
    <input type="checkbox" name="M_tipo" value="GR">GR
    
    <input type="checkbox" name="M_tipo" value="IE">IE
    
    <input type="checkbox" name="M_tipo" value="IN">IN
    
    <input type="checkbox" name="M_tipo" value="IS">IS
    
    <input type="checkbox" name="M_tipo" value="PA">PA
    
    <input type="checkbox" name="M_tipo" value="PR">PR
    
    <input type="checkbox" name="M_tipo" value="QD">QD
    
    <input type="checkbox" name="M_tipo" value="RD">RD
    
    <input type="checkbox" name="M_tipo" value="SC">SC
     
    <input type="checkbox" name="M_tipo" value="SH">SH
    
    <input type="checkbox" name="M_tipo" value="SZ">SZ
    
    <input type="checkbox" name="M_tipo" value="TA">TA
    
    <input type="checkbox" name="M_tipo" value="TV">TV
    
    <input type="checkbox" name="M_tipo" value="TE">TE
    
    <input type="checkbox" name="M_tipo" value="TR">TR
    
    <input type="checkbox" name="M_tipo" value="NE">NE
    
    
    <input type="checkbox" name="T_tipo" value="AP">AP
    
    <input type="checkbox" name="T_tipo" value="PA">PA
    
    <input type="checkbox" name="T_tipo" value="PT">PT
    
    <input type="checkbox" name="T_tipo" value="VS">VS
    
    <input type="checkbox" name="T_tipo" value="IA">IA
    
    <input type="checkbox" name="T_tipo" value="PC">PC
    
    <input type="checkbox" name="T_tipo" value="PO">PO
    
    <input type="checkbox" name="T_tipo" value="AL">AL
    
    <input type="checkbox" name="T_tipo" value="NE">NE
    
    
    <input type="submit">
    
    </form>

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    a) hai cambiato i nomi dei checkbox nel form
    b) manca la funzione due
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da cavicchiandrea
    a) hai cambiato i nomi dei checkbox nel form
    b) manca la funzione due
    c) i nomi dei checkbox non sono univoci

    valuta l'opprtunita' di usare dei radio al loro posto...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da br1
    c) i nomi dei checkbox non sono univoci

    valuta l'opprtunita' di usare dei radio al loro posto...
    Grazie per il suggerimento, ho risolto sostituendo i checkbox con i radio.

    Però come faccio a controllare che:

    1) almeno uno dei radio tra A, M e T sia selezionato?
    2) almeno uno dei radio corrispondenti a A, M o T sia selezionato nella giusta colonna?

    Al momento il form va avanti se seleziono radio A e radio BA ( che invece appartiene a radio M ? )

    Ad esempio:

    1) seleziono radio M;
    2) seleziono radio IS
    Il form deve dare errore ( radio IS appartiene a radio A ).

    1) seleziono radio M;
    2) seleziono radio BA
    Il form deve andare avanti.

    Mi spiego?

  9. #9
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    In parte ho risolto così: http://www.avia-it.com/testaruba/

    Però non riesco a controllare l'esatta combinazione tra i radio.

    Combinazione valida: http://www.avia-it.com/testaruba/immagine_1.jpg
    Combinazione NON valida: http://www.avia-it.com/testaruba/immagine_2.jpg

  10. #10
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.