Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Giubass
    Registrato dal
    Oct 2003
    Messaggi
    169

    Select che abilita altra select

    Ciao Ragazii volevo un piccolo aiutino, come da titolo vorrei abilitare e disabilitare una select da un altra select, posto il codice:

    codice:
    function Attiva(){
    if( document.getElementById('Categoria').???????){
    document.getElementById('Sub_Categoria').disabled=true;
    }else{
    document.getElementById('Sub_Categoria').disabled=false;
    }
    
    <select name="Categoria" size="1" id="Categoria" onchange="Attiva();">
    <option value="-1" selected="selected">- Seleziona -</option>
    <option value="1">Prova 1</option>
    <option value="2">Prova 2</option>
    </select>
    
    <select name="Sub_Categoria" size="1" id="Sub_Categoria" onchange="Attiva();">
    <option value="-1" selected="selected">- Seleziona -</option>
    <option value="1">Prova 1</option>
    <option value="2">Prova 2</option>
    </select>
    In sostanza vorrei abilitare la seconda select solo dopo aver selezionato almeno un valore della prima select, avevo provato a scrivere una funzione ma non so come recuperare document.getElementById('Categoria').???????


    Grazie

  2. #2
    Codice PHP:
    var sel document.getElementById('Categoria');
    if(
    sel.options[sel.selectedIndex].value != '-1'){
       
    //attiva
    }
    else{
       
    //Disattiva

    allora, le select hanno l'attributo "selectedIndex" che contiene l'indice dell'elemento selezionato e l'attributo "options" che contiene un array con le option della select.
    Quindi select.options[select.selectedIndex] per ottenere l'option selezionata, poi fai .vaule per ottenere il valore.

  3. #3
    Utente di HTML.it L'avatar di Giubass
    Registrato dal
    Oct 2003
    Messaggi
    169
    Dovrei fare quindi così?

    codice:
    function Attiva(){
    var sel = document.getElementById('Categoria'); 
    if(sel.options[sel.selectedIndex].value != '-1'){
    document.getElementById('Sub_Categoria').disabled=false;
    }else{
    document.getElementById('Sub_Categoria').disabled=true;
    }

  4. #4
    si, praticamente, si.
    Comunque, sub_categoria non deve avere l'evento onchange

  5. #5
    Utente di HTML.it L'avatar di Giubass
    Registrato dal
    Oct 2003
    Messaggi
    169

    Re: Select che abilita altra select

    Ho provato così ma non funge
    codice:
    function Attiva(){
    var sel = document.getElementById('Categoria'); 
    if(sel.options[sel.selectedIndex].value != '-1'){
    document.getElementById('Sub_Categoria').disabled=false;
    }else{
    document.getElementById('Sub_Categoria').disabled=true;
    }
    
    <select name="Categoria" size="1" id="Categoria" onchange="Attiva();">
    <option value="-1" selected="selected">- Seleziona -</option>
    <option value="1">Prova 1</option>
    <option value="2">Prova 2</option>
    </select>
    
    <select name="Sub_Categoria" size="1" id="Sub_Categoria" disabled>
    <option value="-1" selected="selected">- Seleziona -</option>
    <option value="1">Prova 1</option>
    <option value="2">Prova 2</option>
    </select>


  6. #6
    probabilmente perché manca una parentesi...

    Codice PHP:
    <script type="text/javascript">
    function 
    Attiva(){
        var 
    sel document.getElementById('Categoria'); 
        if (
    sel.options[sel.selectedIndex].value != '-1') {
            
    document.getElementById('Sub_Categoria').disabled false;
        }
        else {
            
    document.getElementById('Sub_Categoria').disabled true;
        }
    }
    </script>

    <select name="Categoria" id="Categoria" onchange="Attiva();">
        <option value="-1" selected="selected">- Seleziona -</option>
        <option value="1">Prova 1</option>
        <option value="2">Prova 2</option>
    </select>

    <select name="Sub_Categoria" size="1" id="Sub_Categoria" disabled="true">
    <option value="-1" selected="selected">- Seleziona -</option>
    <option value="1">Prova 1</option>
    <option value="2">Prova 2</option>
    </select> 

  7. #7
    Utente di HTML.it L'avatar di Giubass
    Registrato dal
    Oct 2003
    Messaggi
    169
    Grazie artorius avevi proprio ragione.

  8. #8
    Ciao ragazzi, mi aggiungo a questo topic per chiedere soluzione relativa alle select.

    Mi ritrovo nella stessa situazione di Giubass con una variante: la mia seconda select non viene abilitata, bensì caricata via Ajax.
    Ora, mi piacerebbe che se il valore della prima sia diverso da quello necessario per la comparsa della seconda, questa... scompaia

    Avete qualche piccolo suggerimento a riguardo?

  9. #9
    Funziona, fuunziona, solo che ti sei 'scordato' una parentesi graffa chiusa!
    Impara a indentare:
    codice:
    function Attiva(){
        var sel = document.getElementById('Categoria'); 
        if(sel.options[sel.selectedIndex].value != '-1'){
            document.getElementById('Sub_Categoria').disabled=false;
        }else{
            document.getElementById('Sub_Categoria').disabled=true;
        }
    }   // <-- mancava qua, la graffa chiusa!
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  10. #10
    @Tobler

    Se hai già la funzione, quando fai il controllo del valore (per intenderci il sel.options[sel.selectedIndex].value ) metti:

    Codice PHP:
    var toRem document.getElementById('Sub_Categoria');
    toRem.parentNode.removeChild(toRem); 
    Chiaramente, nell'altro caso, dovrai rimetterla completamente, inserendola nel document.

    Altrimenti potresti solo nasconderla con:
    Codice PHP:
    var toRem document.getElementById('Sub_Categoria');
    toRem.style.display 'none'

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.