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

Corso jQuery
Creare applicazioni client-side col Framework jQuery

Scritto da Luca Ruggiero nella sezione Javascript

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... :-)

I più cliccati della sezione Javascript

:: jQuery Validation: validazione di un form con jQuery (107.912)

:: Breve guida a jQuery (98.602)

:: Le espressioni regolari in Javascript (84.989)

:: Gestione delle stringhe in Javascript (74.986)

:: Stampare una pagina col Dhtml (42.850)

:: Inserire in automatico lo slash nel formato data gg/mm/aaaa (41.642)

:: Menu orizzontale dinamico in Dhtml (37.187)

:: Gli Array in Javascript (35.935)

:: Temporizzazioni Javascript (31.623)

:: Istruzion condizionali in Javascript: if e switch (28.943)

IN EVIDENZA
DOWNLOAD