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

    abilitare/disabilitare input

    Ciao a tutti.
    Sto cercando di disabilitare/abilitare degli input text senza ovviamente riuscirci. Il front-end è sempre stato il mio tallone d' achille.
    Qualcuno può aiutarmi? Utilizzo html5 se può essere utile. Grazie infinite.

    codice HTML:
    <script>
    //Abilita/disabilita elementi
    function enableORdisable(element)
    {    
         //Ciclo l' array    
         for(i=0; i<element.length; i++)    
         {         
              //Se e' disabilitato         
              if(document.getElementById(element[i]).disabled == 'disabled')         
              {             
                    //QUI VORREI ABILITARLO MA NON SI VERIFICA MAI LA CONDIZIONE         
              }         
              //Se e' abilitato         
              else         
              {
                    //QUESTO FUNZIONA PERFETTAMENTE                 
                   document.getElementById(element[i]).setAttribute('disabled', 'disabled');         
              }    
         }//for end
    }//function end
    </script>
    <input checked type=\"checkbox\" onclick=\"enableORdisable(['primo', 'secondo', 'terzo']);\">
    <br /><input type="text" id="primo">
    <br />
    <input type="text" id="secondo">
    <br />
    <input type="text" id="terzo">

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    if(document.getElementById(element[i]).disabled == true)
    o piu' semplicemente


    codice:
    if(document.getElementById(element[i]).disabled)
    Ultima modifica di ciro78; 06-10-2016 a 20:15
    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
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Sai che esiste alert che ti consente di visualizzare un messaggio. Quando ho un errore (si, si, mi capita) uso alert sia per vedere il contenuto di una variabile sia per vedere se passo o meno per una parte del codice.
    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

  4. #4
    Ciao e grazie, sto provando così ma non capisco perchè se l' array conta 2 elementi mi fa un solo ciclo e comunque non si verifica nessuna delle 2 condizioni:

    codice HTML:
    <script>
    function enableORdisable(element)
    {    
       alert(element.length); //questo stampa 2 quindi l' array e' ok    
       for(i=0; i<element.length; i++)    
       {           
           alert(i); //Questo appare una sola volta        
           //Se e' disabilitato       
           if(document.getElementById(element[i]).disabled)       
           {           
               document.getElementById(element[i]).removeAttr('disabled');           
               alert('disabilitato'); //Questo non appare                  
           }       
           //Se e' abilitato        
           else       
           {           
               alert('abilitato'); //E nemmeno questo appare                              
               document.getElementById(element[i]).setAttribute('disabled', 'disabled');                  
           }    
        }    
    }
    </script>
    <input type="checkbox" onclick="enableORdisable(['date_start', 'date_end'])" />
    <br> 
    <input disabled type="date" name="date_start" id="date_start" value="0" /> Inizio
    <br> 
    <input disabled type="date" name="date_end" id="date_end" value="0" /> Fine

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Se non usi i comandi giusti non funzionerà.

    Secondo me il fatto di voler rimuovere un attributo faceva impiantare la funzione.
    codice HTML:
    <script>
    function enableORdisable(element)
    {    
       alert(element.length); //questo stampa 2 quindi l' array e' ok    
       for(i=0; i<element.length; i++)    
       {           
           alert(i); //Questo appare una sola volta        
           //Se e' disabilitato       
           if(document.getElementById(element[i]).disabled)       
           {           
               document.getElementById(element[i]).disabled = false;            
               alert('abilitato'); //Questo non appare                  
           }       
           //Se e' abilitato        
           else       
           {           
               alert('disabilitato'); //E nemmeno questo appare                              
               document.getElementById(element[i]).disabled = true;                 
           }    
        }    
    }
    </script>
    <input type="checkbox" onclick="enableORdisable(['date_start', 'date_end'])" />
    <br> 
    <input disabled type="date" name="date_start" id="date_start" value="0" /> Inizio
    <br> 
    <input disabled type="date" name="date_end" id="date_end" value="0" /> Fine
    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

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, c'è un errore di sintassi per cui lo script si ferma dopo aver eseguito quell'alert.

    In effetti removeAttr() non è una funzione JavaScript. Probabilmente ti sei confuso con l'analoga funzione jQuery, ma in puro JavaScript si scrive removeAttribute().

    Per la cronaca, puoi usare la console web per verificare questo tipo di errori. Pigia F12 nel tuo browser una volta aperta la pagina in questione, quindi vai sulla scheda "Console" (o qualcosa del genere) nel pannello che ti si è aperto e fai girare lo script. Li saranno restituiti eventuali errori durante l'esecuzione.

    Un sostituto di alert() può essere console.log() che mostrerà il messaggio proprio sulla console web del tuo browser.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da br1 Visualizza il messaggio
    if(document.getElementById(element[i]).disabled == true)

    o piu' semplicemente

    if(document.getElementById(element[i]).disabled)


    il tag code
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  8. #8
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Se non usi i comandi giusti non funzionerà.

    Secondo me il fatto di voler rimuovere un attributo faceva impiantare la funzione.
    codice HTML:
    <script>
    function enableORdisable(element)
    {    
       alert(element.length);    
       for(i=0; i<element.length; i++)    
       {           
           alert(i); //Questo appare una sola volta        
           //Se e' disabilitato       
           if(document.getElementById(element[i]).disabled)       
           {           
               document.getElementById(element[i]).disabled = false;            
               alert('abilitato'); //Questo non appare                  
           }       
           //Se e' abilitato        
           else       
           {           
               alert('disabilitato'); //E nemmeno questo appare                              
               document.getElementById(element[i]).disabled = true;                 
           }    
        }    
    }
    </script>
    <input type="checkbox" onclick="enableORdisable(['date_start', 'date_end'])" />
    <br> 
    <input disabled type="date" name="date_start" id="date_start" value="0" /> Inizio
    <br> 
    <input disabled type="date" name="date_end" id="date_end" value="0" /> Fine
    Ciao scusate l' assenza ma ero immerso nel back-end sto provando il suggerimento di badaze ma non funziona non si verificano nessuna delle 2 condizioni...ripropongo lo script:

    codice:
    <script>
    function enableORdisable(element)
    {    
       alert(element.length + ' elemento da abilitare');     
       for(i=0; i<element.length; i++)    
       {           
                
           //Se e' disabilitato       
           if(document.getElementById(element[i]).disabled)       
           {           
               document.getElementById(element[i]).disabled = false;            
               alert('è stato abilitato'); //Questo non appare                  
           }       
           //Se e' abilitato        
           else       
           {           
                                             
               document.getElementById(element[i]).disabled = true;
               alert('è stato disabilitato'); //E nemmeno questo appare                 
           }    
        }    
    }   
    
    
    </script>
    
    <input type="checkbox" name="sendmemail" value="1" onclick="enableORdisable(['myemail'])"  />
    Invia token alla mia email 
    <input type="text" name="myemail" maxlenght="50" disabled  />

  9. #9
    Niente contrordine funziona mi ero scordato di mettere l' id nel campo...grazie 1000

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.