Visualizzazione dei risultati da 1 a 5 su 5

Discussione: radiobox auto-disabled

  1. #1

    radiobox auto-disabled

    Vi spiego questo mio scoglio...

    Ho 3 radiobox:
    scelta1
    scelta2
    scelta3

    e per ogni radiobox poi ho in un altra parte della pagina 5 opzioni, quindi

    scelta1_1
    scelta1_2
    scelta1_3
    scelta1_4
    scelta1_5

    scelta2_1
    scelta2_2
    scelta2_3
    scelta2_4
    scelta2_5

    scelta3_1
    scelta3_2
    scelta3_3
    scelta3_4
    scelta3_5

    vorrei che l'utente, se seleziona, per esempio, scelta 1, possa poi selezionare solo le "sottoscelte" della scelta1, e che quindi le altre sottoscelte passino a disabled... come si può fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Premessa:
    nei radio una ed una sola opzione deve essere selezionata.
    I browser permettono di presentare una pagina (in cui l'utente non ha ancora agito) con tutti i radio deselezionati, ma questo e` una estensione del codice ed una situazione non replicabile via JS (in linea di massima).

    L'argomento si puo` affrontare in due modi, ma dalla tua descrizione non si capisce quale e` meglio nel tuo caso:
    - visualizzare solo i radio pertinenti
    - visualizzarli sempre tutti e disabilitare gli altri

    Il primo caso e` il piu` semplice:
    si inserisce ogni serie di radio in uno specifico div, che viene visualizzato solo se pertinente:

    <input type="radio" name="princ" value="scelta1" onclick="mostra(1);" />scelta1

    <input type="radio" name="princ" value="scelta2" onclick="mostra(2);" />scelta2

    ...

    <div id="bloccoScelta1">
    <input type="radio" ...>scelta1_1
    <input type="radio" ...>scelta1_2
    ...
    </div>
    <div id="bloccoScelta2">
    <input type="radio" ...>scelta2_1
    <input type="radio" ...>scelta2_2
    ...
    </div>

    Il JS:
    codice:
    function mostra(ide) {
      for(var i=1; i<=MAX; i++) {
        document.getElementById('bloccoScelta'+i).style.display = 'none';
      }
      document.getElementById('bloccoScelta'+i).style.display = 'block';
    }
    Nel tuo caso MAX vale 3.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    se ti può essere d'aiuto, (perchè avrei voluto farlo nel secondo modo che tu hai proposto) potrei allegarty l'immagine della pagina, così hai in chiaro la struttuta

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non serve l'immagine.
    Ti posto il codice che ti serve.

    Suppongo questi nomi per i vari radio:
    <input type="radio" name="princ" value="scelta1" onclick="mostra(this);" />scelta1

    ...
    ...
    <input type="radio" name="scelta1" value="scelta1_1" />scelta1_1

    ...
    <input type="radio" name="scelta1" value="scelta1_2" />scelta1_2

    ...
    ...
    <input type="radio" name="scelta2" value="scelta2_1" />scelta2_1

    ...
    codice:
    function mostra(rr) {
      for(var i=1; i<=MAX; i++) {
        var sr = rr.value.substr(0,rr.value.length-1)+i;
        alert("controllo - disabilito i nomi "+sr);
        for(var j=0; j<sr.length; j++) {
          rr.form.sr[i].disabled = true;
        }
      }
      var sr = rr.value;
      for(var j=0; j<sr.length; j++) {
        rr.form.sr[i].disabled = false;
      }
    }
    Spero sia giusto, perche` non lo ho provato e la cosa e` piuttosto complessa (non difficile).
    Ho lasciato un alert, per verificare che tutto funzioni - alla fine andra` tolto o commentato.

    Nota che lo script basa il funzionamento sul fatto che i name dei radio secondari siano uguali al value dei radio principali, e che tutto stia nello stesso form.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    ok ora provo e poi ti so dire

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.