• Super User

    Document.getElementsByTagName + color

    Scusate non riesco a capire se è una cosa che si può o non si può fare.
    Voglio che al click sul bottone tutti i label cambino di colore.
    Ho provato a fare:

    document.getElementsByTagName('label').style.color='red';
    ma mi dice che style.color non è una funziona possibile.
    Qualcuno mi sa dare una dritta?

    O comunque ditemi come potrei fare in questo caso:

    Ho un form.
    Al click sul bottone "invia" parte un javascript che controlla se i campi inseriti sono scritti correttamente o se sono vuoti. La dove questa clausola va a mancare i label si colorano di rosso.
    Però se vado a scrivere nuovamente per correggere l'errore di inserimento e riclicco su INVIA i parametri mi rimangono rossi!

    Ho ovviato a questo problema così:

        function validazione(){
            with(document.regForm){
                if(nome.value==""){
                    document.getElementById('Lnome').style.color='red';
                    document.getElementById('Lnome').style.fontWeight='bold';
                    return false;
                }else{
                    document.getElementById('Lnome').style.color='#666666';
                    document.getElementById('Lnome').style.fontWeight='normal';
                }
    }
    }
    

    Ma siccome devo fare il controllo (questo era solo x il campo nome) su una decina di campi, mi pare diventi troppo lunga la porzione di codice necessario.
    Non è che sapete dirmi come poter fare con il minor codice possibile.


  • User Attivo

    Ciao!

    document.getElementsByTagName('label')

    questa funzione ti restituisce un array di elementi, si vede dalla keyword "Elements" che è plurale.

    associa ad una variabile questo array, cicla su tutti gli elementi dell'array e ad ognuno cambia lo style. Così funziona..

    Una cosa tipo:

    a = document.getElementsByTagName('label')

    for(i=0;i<a.length();i++)
    {
    a*.style.color = 'red';
    }

    dovrebbe andare. Fammi sapere. Se serve posso farne uno di prova che funzioni.