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

    [javascript]: funzione onChange

    Lo script che ho realizzato ed inserito qui sotto ha la funzione di attivare / disattivare alcune caselle di testo in base a ciò che viene scelto nella select box, questo attraverso il metodo onChange().
    Il problema è che quando scelgo l'opzione uno o due lo script non agisce, se invece scelgo l'opzione tre, funziona perfettamente.

    codice:
    function scelta_ricerca()
    {
       var tipo_ricerca = document.ric_trucchi.tipo_ricerca.value;
       //opzione uno
       if(tipo_ricerca == "data")
       {
          document.ric_trucchi.datadal.disabled=false;
          document.ric_trucchi.dataal.disabled=false;
       } else {
          document.ric_trucchi.datadal.disabled=true;
          document.ric_trucchi.dataal.disabled=true;
       }
       //opzione due
       if(tipo_ricerca == "categoria")
       {
          document.ric_trucchi.categoria.disabled=false;
       } else {
          document.ric_trucchi.categoria.disabled=true;
       }
       //opzione tre
       if(tipo_ricerca == "data_categoria")
       {
          document.ric_trucchi.datadal.disabled=false;
          document.ric_trucchi.dataal.disabled=false;
          document.ric_trucchi.categoria.disabled=false;
       } else {
          document.ric_trucchi.datadal.disabled=true;
          document.ric_trucchi.dataal.disabled=true;
          document.ric_trucchi.categoria.disabled=true;
       }
    }
    Inserisco la parte htm dove avviene la scelta.

    codice:
    <tr>
     <td>
      <select name="tipo_ricerca" class="box_tr" onChange="scelta_ricerca()">
       <option value=""></option>
       <option value="data">Data</option>
       <option value="categoria">Categoria</option>
       <option value="data_categoria">Data e Categoria</option>
      </select>
     </td>
    </tr>
    Grazie,
    ciao.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il controllo e' assai ingarbugliato... per come e' fatto vengono sempre eseguiti anche i due else delle condizioni non verificate... ovvio che funzioni solo con l'ultima opzione!

    Inltre usi il nome della variabile uguale al nome della select (devono essere univoci) e ricavi il valore in modo errato.

    Ecco il tutto rivisto e semplificato:
    codice:
    function scelta_ricerca()
    {
       var f = document.ric_trucchi;
       var wtipo_ricerca = f.tipo_ricerca.options[f.tipo_ricerca.selectedIndex].value;
    
       // disabilito tutto per default
          f.datadal.disabled=true;
          f.dataal.disabled=true;
          f.categoria.disabled=true;
    
       //opzione uno
       if(wtipo_ricerca == "data")
       {
          f.datadal.disabled=false;
          f.dataal.disabled=false;
       }
       //opzione due
       if(wtipo_ricerca == "categoria")
       {
          f.categoria.disabled=false;
       }
       //opzione tre
       if(wtipo_ricerca == "data_categoria")
       {
          f.datadal.disabled=false;
          f.dataal.disabled=false;
          f.categoria.disabled=false;
       }
    }
    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
    Originariamente inviato da br1
    Il controllo e' assai ingarbugliato... per come e' fatto vengono sempre eseguiti anche i due else delle condizioni non verificate... ovvio che funzioni solo con l'ultima opzione!


    Ti ringrazio, adesso va bene.


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.