INTERNET EXPLORER? Ti consiglio di navigare questo sito con Mozilla Firefox oppure con Google Chrome.

Controllare che le parole inserite in un modulo non siano troppo lunghe con Javascript

Autore: Luca Ruggiero | Tell a Friend

Corso Java
Impara a programmare col linguaggio OOP della Sun.

Corso Javascript e DHTML
Impara a creare controlli ed animazioni!

Corso Web Design
Disegno di siti Web con HTML, CSS e Dynamic HTML.

In molte applicazioni tipo forum, guestbook, ed altre che permettono agli utenti di scrivere su un database (file di testo, Xml o altre strutture più o meno stabili) è importante, tra i vari e molteplici controlli che è necessario eseguire, controllare l'inserimento di una parola troppo lunga senza spazi, scritta magari tanto per rompere le scatole, che rischia di far saltare tutto il layout e di far comparire la barra di scorrimento orizzontale... cosa decisamente fastidiosa, che personalmente mi manda in bestia!

Implementare questo meccanismo è semplice: il codice che propongo è Javascript lato client, ma può tranquillamente essere riutilizzato lato server in Asp-JScript.

Ecco il codice di un modulo Html di prova:

<form name="modulo">
    <textarea name="testo" rows="5" cols="30"></textarea>
    <br><br>
    <input type="button" value="OK" onclick="Controllo()">
</form>
Di seguito il codice commentato della funzione Javascript:
function Controllo()
{
    var testo = document.modulo.testo.value;
    if (testo == "" || testo == "undefined" || testo.charAt(0) == " ")
    {
        alert("Inserisci un testo");
    }
    else
    {
       // VARIABILI PER:
       // IL CICLO
       // PER LA GESTIONE DEGLI ERRORI
       // PER IL MASSIMO NUMERO DI CARATTERI CONSECUTIVI CONSENTITI
        var i = 0;
        var errore = 0;
        var max_lunghezza = 5;
       // DIVIDO IL VALORE DEL CAMPO DEL FORM IN UN ARRAY DI STRINGA PER IL CARATTERE SPAZIO VUOTO
        var s = testo.split(" ");
       // ESEGUO UN CICLO PER CONTROLLARE TUTTI I VETTORI DELL'ARRAY CHE HO CREATO
        while (i<s.length && errore == 0)
        { 
           // VALORIZZO LA VARIABILE errore A SECONDA DELLA LUNGHEZZA DEI VETTORI
            s[i].length > max_lunghezza ? errore = 1 : errore = 0;
           // SE errore == 1 VUOL DIRE CHE C'E' UNA PAROLA TROPPO LUNGA
            if (errore == 1)
            {
                alert("Hai inserito una parola troppo lunga");
            }
            i++; // INCREMENTO IL CONTATORE DEL CICLO
        }
       // SE NEL CICLO NON TROVO VETTORI TROPPO LUNGHI VUOL DIRE CHE L'ESITO E' POSITIVO E VEDO ANANTI
        if (errore == 0) 
        {
            alert("OK");
        }
    }
}
Il massimo numero consentito è specificato nella variabile max_lunghezza e per l'esempio è impostato a soli 5 caratteri; si consiglia di impostarlo a 30, 40, 5o a seconda delle dimensioni del layout della pagina di output del vostro sito, o comunque ad un valore verosimile... non credo che esistano effettivamente parole di 50 caratteri, e chi ne usa una, state pur certi, ha solo intenzione di rompere le... :-)

IN EVIDENZA
HOT LINKS