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

    Problema con un ciclo for e condizione if

    Ciao a tutti ho un problema con questo script. Dovrebbe nascondermi o mostrarmi un div a seconda della scelta della select. Funziona solo con la prima e la seconda scelta, mentre con la 3 e 4 no. Pare che l' IF funzioni solo al primo ciclo. Ho inserito info per il debug che fanno capire ciò.
    Qualcuno può aiutarmi? Grazie infinite.
    codice HTML:
    <script>
       //visualizza o nasconde div
       function dis_hide_div(div_id, w){    
       document.getElementById(div_id).style.display = w;
       } 
       //nasconde/mostra un div se IF ritorna true
       function hiddenIf(w, div_id, getInput, list){    
       var explode = list.split(",");    
       var Tipologia =       document.getElementById(getInput).options[document.getElementById(getInput).selectedIndex].value;       
       for(i=0;i<explode.length;i++){       
       alert('costante '+Tipologia+' = variabile '+explode[i]);       
          if(Tipologia == explode[i]){         
             dis_hide_div(div_id, w);         
             alert('Eeguo il break');         
             break;       
          }    
       }
    }//Function end
    </script>         
    <select name="id_contract_type"                   
       id="id_contract_type"             
       onChange="hiddenIf('block','pro_div','id_contract_type','2');                           
       hiddenIf('none','pro_div','id_contract_type','1, 3, 4')"                      >                  
       <option  value='1' >Nascosto1</option>            
       <option value='2' selected>Visibile</option>              
       <option value='3' >Nascosto2</option>            
       <option value='4' >Nascosto3</option>               
    </select>        
    <div id="pro_div" style="display: block;" >                                  
    Questo deve apparire solo se scelgo "Visibile"                    
    e nascondersi solo se scelgo: "Nascosto"                                 
    </div>

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,344
    Lo split che fai crea un array con i valori seguenti : '1' poi ' 3' poi ' 4'.
    Basta non mettere spazi dopo della virgola. => '1,3,4' non '1, 3, 4'
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Non ci ho mica pensato che passandogli una stringa c' era compreso gratis lo spazio...grazie infinte badaze!

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.