Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    74

    AIUTO: checkbox che abilita/disabilità menu a tendina

    Ciao a tutti,

    vi prego ho bisogno di una mano perchè sto provando da 2 giorni e non ne vengo a capo !!
    Devo fare una cosa, penso, abbastanza semplice: inserire un checkbox rettangolare (una di quelle caselline dove si mette la spunta), che, una volta selezionato, deve abilitare quattro campi con menu a discesa (disabilitati di default), corrispondenti a giorno, mese, ora e minuti di una prenotazione. Ho provato in tutti i modi, ho scaricato qualche pagina sul web e cercato di copiarne il codice, ma non c'è niente da fare. Vi prego, scrivetemi x favore il pezzetto di codice che devo applicare al checkbox....ho capito come disabilitare i 4 menu, il problema è che:

    - quando clicco sul checkbox riesco ad abilitarne soltanto uno, e non riesco ad attivare anche gli altri 3
    - quando riclicco sul checkbox, i 4 campi dovrebbero ri-disattivarsi, invece rimangono attivi

    Aiutatemi con un po' di codice, x favore !!!

    Grazie
    Giorgio

  2. #2
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    La spiegazione del codice è nei commenti:
    codice:
    <head>
      <style type="text/css">
        /* in partenza le select sono nascoste */
        select {visibility:hidden;}
      </style>
      
      <script type="text/javascript">
        function switchDataOra(valoreChk) {
          //Se il check è spuntato (valoreChk=true) si imposta la variabile visib="visible" per visualizzare le select
          //Al contrario si setta visib="hidden" per nasconderle
          var visib = valoreChk ? "visible" : "hidden";
          
          //Per comodità si utilizza la variabile oForm
          var oForm = document.getElementById("idForm");
    
          //Impostazione dell'attributo di stile "visibility" dei campi da mostrare/nascondere
          oForm.giorno.style.visibility = visib;
          oForm.mese.style.visibility   = visib;
          oForm.ora.style.visibility    = visib;
          oForm.minuti.style.visibility = visib;
        }
      </script>
    </head>
    <body>
      <form id="idForm">
        <input name="dataEora" type="checkbox" onclick="switchDataOra(this.checked)"/>
        <select name="giorno">
          <option>1</option>
          <option>2</option>
        </select>
        <select name="mese">
          <option>1</option>
          <option>2</option>
        </select>
        <select name="ora">
          <option>1</option>
          <option>2</option>
        </select>
        <select name="minuti">
          <option>1</option>
          <option>2</option>
        </select>
      </form>
    <body>
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  3. #3
    Tempo fa avevo studiato una soluzione del genere:

    - http://www.pierofix.it/temp/dom/form...disabilita.htm

    Se hai pazienza di leggerti il codice sorgente...

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    74

    x nuky

    Ciao Nuky,

    grazie x il prezioso aiuto, purtroppo non ne vengo ancora fuori....non so dove sbaglio ma non funziona. Se ti spedissi in pvt la pagina web (che è già pronta con tutti i campi, basta solo inserire sto benedetto pezzo di codice), ti romperebbe aiutarmi tu a finirla ?

    Grazie
    Giorgio

  5. #5
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053

    Re: x nuky

    Originariamente inviato da volodos
    Ciao Nuky,

    grazie x il prezioso aiuto, purtroppo non ne vengo ancora fuori....non so dove sbaglio ma non funziona. Se ti spedissi in pvt la pagina web (che è già pronta con tutti i campi, basta solo inserire sto benedetto pezzo di codice), ti romperebbe aiutarmi tu a finirla ?

    Grazie
    Giorgio
    Posta qui lo script che hai fatto e il codice della form, così vediamo (pierofix vede ) se è da ottimizzare o meno.
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    74
    Ho inserito tra <head> e </head> questo pezzo:

    <script type='text/javascript'>
    var i=0;

    function attiva_disattiva(){
    i=i+1;
    if (i % 2 != 0){
    modulo.campo1.disabled=false;
    modulo.campo2.disabled=false;
    modulo.campo3.disabled=false;
    modulo.campo4.disabled=false;
    }
    else {
    modulo.campo1.disabled=true;
    modulo.campo2.disabled=true;
    modulo.campo3.disabled=true;
    modulo.campo4.disabled=true;
    }
    }
    </script>

    Poi ho inserito subito tra <body> e </body> questo pezzo:

    <form name='modulo' method='post' action='pagina_sito'>
    <input type='checkbox' onclick='attiva_disattiva();'>Attiva/Disattiva Campi
    <select name='campo1' disabled='disabled'>
    <option>Voce Menu 1</option>
    <option>Voce Menu 2</option>
    <option>Voce Menu 3</option>
    <option>Voce Menu 4</option>
    </select>
    <select name='campo2' disabled='disabled'>
    <option>Voce Menu 1</option>
    <option>Voce Menu 2</option>
    <option>Voce Menu 3</option>
    <option>Voce Menu 4</option>
    </select>
    <select name='campo3' disabled='disabled'>
    <option>Voce Menu 1</option>
    <option>Voce Menu 2</option>
    <option>Voce Menu 3</option>
    <option>Voce Menu 4</option>
    </select>
    <select name='campo4' disabled='disabled'>
    <option>Voce Menu 1</option>
    <option>Voce Menu 2</option>
    <option>Voce Menu 3</option>
    <option>Voce Menu 4</option>
    </select>
    </form>


    E' un codice che ho trovato in una pagina web, solo che non ho capito cosa devo inserire al posto di "pagina_web". Inoltre, quando clicco sul checkbox i campi non si abilitano. Il tuo non l'ho per il momento inserito perchè vorrei che i campi, se il checkbox è deselezionato, non siano invisibili, bensì visibili ma disabilitati.

    Mi daresti una mano ?
    Grazie

  7. #7
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Originariamente inviato da volodos
    ...
    Mi daresti una mano ?
    Grazie
    Io sono disponibile a darti una mano, ma l'hai letto il mio post?
    Devi inserire quello che ho scritto nella tua pagina. Non mi pare che quello da te postato ci somigli molto.

    Devi solo copiare e incollare, con due piccolissime avvertenze.
    La form deve avere l'attributo id valorizzato. Nello script, grazie a questo valore, si può poi puntare ai campi al suo interno:
    codice:
    HTML:
    <form id="idForm">
    
    SCRIPT:
    var oForm = document.getElementById("idForm");
    I nomi dei campi devono essere uguali a quelli scritti nello script:
    codice:
    HTML:
    <select name="giorno">
    <select name="mese">
    <select name="ora">
    <select name="minuti">
    
    SCRIPT:
    oForm.giorno.style.visibility = visib;
    oForm.mese.style.visibility   = visib;
    oForm.ora.style.visibility    = visib;
    oForm.minuti.style.visibility = visib;
    Tutto qui.


    Edit: Ops, disabilitare, anch'io non leggo mica tanto bene i post degli altri!
    La logica è uguale comunque:
    codice:
    <head>
      <script type="text/javascript">
        function switchDataOra(valoreChk) {
          //Se il check è spuntato (valoreChk=true) imposto la variabile visib="visible" per visualizzare le select
          //Al contrario si setta visib="hidden" per nasconderle
          var visib = valoreChk ? "" : "disabled";
          
          //Per comodità si utilizza la variabile oForm
          var oForm = document.getElementById("idForm");
    
          //Impostazione dell'attributo di stile "visibility" dei campi da mostrare/nascondere
          oForm.giorno.disabled = visib;
          oForm.mese.disabled   = visib;
          oForm.ora.disabled    = visib;
          oForm.minuti.disabled = visib;
        }
      </script>
    </head>
    <body>
      <form id="idForm">
        <input name="dataEora" type="checkbox" onclick="switchDataOra(this.checked)"/>
        <select name="giorno" disabled="disabled">
          <option>1</option>
          <option>2</option>
        </select>
        <select name="mese" disabled="disabled">
          <option>1</option>
          <option>2</option>
        </select>
        <select name="ora" disabled="disabled">
          <option>1</option>
          <option>2</option>
        </select>
        <select name="minuti" disabled="disabled">
          <option>1</option>
          <option>2</option>
        </select>
      </form>
    </body>
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    74
    ho fatto come mi hai scritto tu, vedo sia il checkbox che i 4 campi (disabilitati), ma cliccando sul checkbox non si abilitano....hai icq, messenger o skype ? forse riusciamo a risolvere in maniera più interattiva....

    Grazie ancora

  9. #9
    Utente di HTML.it L'avatar di nuky
    Registrato dal
    Oct 2001
    Messaggi
    1,053
    Originariamente inviato da volodos
    hai icq, messenger o skype ?
    no, no o no.
    Posta il codice. Questo è un forum e in ogni caso non serve l'interattività, mostra qui man mano la situazione.
    - "E' un messaggio. E' di Svarion, della terra di Merdor!"
    - "Busto Arsizio?"
    - "Terrazzo, sgabello, formaggio. Borraccia blu, ca**o di gomma e... CANNUCCIA!"
    - "Ca**o dici? C'è scritto «frocio chi legge»!"

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    74
    il codice che ti posterei è esattamente identico a quello che mi hai scritto tu, non ho fatto altro che copiare e incollare (spezzando in 2 parti, a seconda se dovevo inserire in head o body), non ho cambiato nulla. Altrimenti ti posto il codice di tutta la pagina....dimmi tu

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.