+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

[Javascript] Checkbox abilitato dopo aver selezionato un altro checkbox

  1. #1
    Dian non è in linea Novello
    Ciao,
    sto creando un sito per un gioco di ruolo dal vivo e mi serve una mano per una questione di checkbox.

    Mettendo che ho questo codice:

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    >
    <
    html xmlns="http://www.w3.org/1999/xhtml" lang="it">
    <
    head>
        <
    title>Le Case del Silenzio</title>
        <
    script type="text/javascript">


    function 
    checkboxlimit(checkgrouplimit){
        var 
    checkgroup=checkgroup
        
    var limit=limit
        
    for (var i=0i<checkgroup.lengthi++){
            
    checkgroup[i].onclick=function(){
            var 
    checkedcount=0
            
    for (var i=0i<checkgroup.lengthi++)
                
    checkedcount+=(checkgroup[i].checked)? 0
            
    if (checkedcount>limit){
                
    alert("Puoi selezionare solo "+limit+" talenti")
                
    this.checked=false
                
    }
            }
        }
    }

    </script>
        </head>
    <body>
    <h1>Scegli i talenti</h1>
    <p>Seleziona 7 talenti:</p>

    <form id="talenti" name="talenti">
    <input type="checkbox" name="armicomuni" /> Armi comuni<br />
    <input type="checkbox" name="armigrandi" /> Armi grandi<br />
    <input type="checkbox" name="armidoppie" /> Armi doppie<br />
    <input type="checkbox" name="armidatiro" /> Armi da tiro<br />
    <input type="checkbox" name="armidalancio" /> Armi da lancio<br />
    <input type="checkbox" name="tempra" /> Tempra<br />
    <input type="checkbox" name="robustezzai" /> Robustezza I<br />
    <input type="checkbox" name="duroamorire" /> Duro a morire<br />
    <input type="checkbox" name="prontosoccorso" /> Pronto soccorso<br />
    <input type="checkbox" name="erboristeria" /> Erboristeria<br />
    <input type="checkbox" name="medicinai" /> Medicina I<br />
    <input type="checkbox" name="medicinaii" /> Medicina II<br />

    </form>

    <script type="text/javascript">

    //Syntax: checkboxlimit(checkbox_reference, limit)
    checkboxlimit(document.forms.talenti, 7)

    </script>

    </body>
    </html> 
    Come posso fare in modo che "Armi grandi" sia selezionabile (ci posso cliccare sopra) solo se seleziono "Armi comuni" e "Medicina II" solo se seleziono sia "Medicina I" sia "Erboristeria"?

    Ringrazio in anticipo per l'aiuto ^.^ sono parecchio impedita ^.^"

    PS: ops... mi se che ho sbagliato sezione... eventualmente la si può mettere in quella giusta? ^.^"
    Ultima modifica di Dian; 10-10-2009 08:55  Motivo: scusa per aver probabilmente messo la discussione nel luogo sbagliato

  2. #2
    L'avatar di bottomap
    bottomap non è in linea Amanuense
    Ciao,

    Si, hai postato nella sezione sbagliata... Java e Javascript, a parte il nome ed una sintassi simile, condividono ben poco. Sposto nella sezione appropriata.
    Ultima modifica di bottomap; 12-10-2009 15:29 
    ℹ️ Leggi di più su bottomap ...

  3. #3
    Dian non è in linea Novello
    Grazie mille ^.^

    Un mio amico mi ha suggerito questo script:
    Codice PHP:
    <html
    <
    script type="text/javascript"
    function 
    change() { 
       
    document.test.due.checked=true

    </script> 
    <form name="test"> 
    <input type=checkbox name=uno value=0 onClick="change()"> uno 
    <input type=checkbox name=due value=0> due 
    </test> 
    </script>

    </html> 
    Ma ancora non mi funziona
    Per come lo vedo nella pagina, mi permette di selezionare dall'inizio sia uno che due, e non lasciare inattivato due se non seleziono uno

    EDIT: \o/ sono riuscita a fare con questo codice:
    Codice PHP:
    <html
    <
    script type="text/javascript"
    function 
    change() { 
       
    document.test.due.disabled=false

    </script> 

    <form name="test"> 

    <input type=checkbox name=uno value=0 onClick="change()"> uno 
    <input type=checkbox name=due disabled> due 
    </test> 

    </html> 
    Però ora, se lo seleziono una volta, "due" mi rimane selezionabile anche se tolgo la selezione da "uno"
    Ultima modifica di Dian; 18-10-2009 10:33 

  4. #4
    L'avatar di bottomap
    bottomap non è in linea Amanuense
    Ciao,

    disabled e checked sono due attributi distinti, l'impostazione dell'uno non influenza quella dell'altro, salvo che il disabled previene la gestione del checked lato client.

    Ad ogni modo devi operare impostando il disabled (ed eventualmente il checked, se ti interessa) del "figlio" sulla base dello stato del padre al momento del click...

    una cosa del genere (pseudocodice):
    if(babbo.checked==true){
      //il babbo è stato spuntato, il figlo deve abilitarsi
      figlio.disabled=false;
    }else{
      //il babbo non è più spuntato, il figlio deve disabilitarsi
      figlio.disabled=true;
      //eventualmente potresti anche togliere il segno di spunta sul figlio, se desideri
    }
    
    Detto questo, puoi generalizzare un minimo sfruttando l'attributo id degli elementi e la getElementById (che ti da un elemento a partire dal suo attributo id), e scrivere una funzione che opera a partire da due id (il padre ed il figlio)... altrimenti se hai 40 coppie di checkbox ti tocca a scrivere 40 funzioni distinte.
    Qualcosa del tipo (ancora pseudocodice):
    codice HTML:
    <script>
       function change(idpadre, idfiglio){
          var padre=document.getElementById(idpadre);
          var figlio=document.getElementById(idfiglio);
          ... if padre.checked==true... ecc ecc
       }
    </script>
    ...
    <input type="checkbox" id="pippo" onclick="change('pippo','pluto')">...
    <input type="checkbox" id="pluto">...
    NB: Ovviamente devi gestire le cose per il primo stato... al momento in cui la pagina viene ricevuta non è avvenuto ancora nessun click, ed è bene che gli stati siano consistenti all'inizio.

    Ciaociao
    ℹ️ Leggi di più su bottomap ...

  5. #5
    Dian non è in linea Novello
    Evviva, finalmente sono riuscita a fare questo passo grazie mille per l'aiuto
    La strada per la fine è lunga, ma mi sento ottimista ^.^

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risolto: Intercettare Checkbox in gridview non selezionato.
    Da guil nel forum ASP 3, ASP .Net
    Risposte: 1
    Ultimo Post: 04-07-2012, 18:30
  2. Risposte: 7
    Ultimo Post: 22-03-2011, 08:47
  3. [Javascript]Controllo checkbox
    Da martinap nel forum HTML, CSS e JavaScript
    Risposte: 1
    Ultimo Post: 23-04-2010, 12:41
  4. Risposte: 3
    Ultimo Post: 02-10-2008, 23:13
  5. [Javascript]Selezione su lista checkbox
    Da gianluca13 nel forum HTML, CSS e JavaScript
    Risposte: 2
    Ultimo Post: 18-12-2006, 15:33