Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Select disabilita il checkbox corrispondente

    Ho un Select e dei checkbox.
    I checkbox hanno gli stessi valori delle opzioni del select.

    Voglio che selezionando una voce nel menù select, mi si disabiliti il checkbox corrispondente allo stesso valore, e che nel contempo mi abiliti tutti gli altri.

    So che dovrei usare Javascript e l'evento OnChange per richiamarlo, ma non saprei come fare la funzione, nonostante sia relativamente semplice :rollo:

    Mi date una mano?

    Grazie!

    Ciao!

    PS - E' necessario che il select e checkbox stiano in un form o ne posso fare a meno, se non devo distinguere tra form?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    <script>
    function x(obj) {
    f = obj.form
    v = obj.options[obj.selectedIndex].value
    for (var i=0;i<f.elements.length;i++) {
      el = f.elements[i]
      if (el.type=="checkbox") el.checked=(el.value!=v)
    }
    }
    </script>
    <form>
    <select onchange="x(this)">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
    
    <input type=checkbox name=pippo value="1">1
    
    <input type=checkbox name=pluto value="2" checked>2
    
    <input type=checkbox name=minni value="3" checked>2
    
    </form>
    Metterli in un form semplifica lo script...

    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

  3. #3
    Sei un genio

    Io avrei scritto paginate di codice

    Ti ringrazio tantissimo.

    Però dovrei adattarlo in modo che non richieda di esser tutto compreso in una form.... è semplice?

    [EDIT]

    Come non detto credo che non serva

    Casomai lo riesumo se ho problemi includendo una form

    Ancora grazie

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Devi assegnare ai checkbox degli id "prevedibili"

    codice:
    <script>
    function x(obj) {
    v = obj.options[obj.selectedIndex].value
    for (var i=1;i<=3;i++) {
      el = document.getElementById("chk_"+i)
      el.checked = (el.value!=v)
    }
    }
    </script>
    <select onchange="x(this)">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
    
    <input type=checkbox id="chk_1" value="1">1
    
    <input type=checkbox id="chk_2" value="2" checked>2
    
    <input type=checkbox id="chk_3" value="3" checked>2
    Ci sarebbe pure la possibilita' di utilizzare getElementsByTagName() ... lo puoi sperimentare tu stesso

    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
    Ecco cosa mi sono sbagliato a dire.

    Il select deve disabilitare il checkbox corrispondente e lasciare gli altri com'erano prima (non checkarli per forza).

    Sto provando a smanettare nel tuo codice ma son troppo niubbo in javascript

    Un aiutino?

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    el.checked = (el.value!=v)

    diventa:

    el.disabled = (el.value==v)

    hai ragione... avevi proprio detto disabilitare

    ri-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

  7. #7
    Un'ultima rottura, se non sei già a letto

    Sono "riuscito" a fare in modo che quando si seleziona un valore del select si disabilida e unchecka il checkbox corrispondente.

    Adesso devo fare in modo che si comporti così per tutti i valori, eccetto per il primo.
    Se seleziono il primo valore del select infatti tutti devono essere disabilitati e uncheckati.

    Mi sai dare quest'ultima spinta?

    Gracias

    Ah e un'ultima cosa. Ma V che cosa memorizza? Un numero di indice o altro? Non riesco a capirlo

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    <script>
    function x(obj) {
    	i = obj.selectedIndex;
    	v = obj.options[i].value
    	for (var z=1;z<=3;z++) {
    		el = document.getElementById("chk_"+z)
    		el.checked = (el.value!=v)
    		el.disabled = (el.value==v||i==0) 
    	}
    }
    </script>
    <select onchange="x(this)">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
    
    <input type=checkbox id="chk_1" value="1" disabled>1
    
    <input type=checkbox id="chk_2" value="2" checked disabled>2
    
    <input type=checkbox id="chk_3" value="3" checked disabled>2
    i e' l'indice dell'elemento selezionato; v il suo valore.

    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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.