Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    185

    Controlli su campi in javascript

    Dove posso trovare delle funzioni generiche di controllo sui campi:
    per esempio, una funzione che mi controlli come é stata inserita una data, oppure se una data é obbligatoria, oppure il formato di un indirizzo mail, oppure il formato di un numero di telefono ecc.......
    grazie

  2. #2
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Fai una ricerca nel forum e ne troverai a bizzeffe.
    www.beppegrillo.it
    Il blog di Beppe!!

  3. #3
    io uso questi

    <html>
    <head>
    <title>Template i Javascript per il controllo di campi form</title>
    <META name="description" content="">
    <META name="keywords" content="">
    <script language="JavaScript">
    //variabile globale usata come flag di errore
    var err=false;

    //funzione per controllare la lunghezza che non sia minore al parametro len
    function lungok(item,len)
    { return(item.length>=len);}

    //funzione per controllare che nel campo di testo ci sia almeno un carattere
    function txtok(item,l)
    { var valido=false;
    var i=0;

    if (l!=0 && lungok(item,l)) return false;

    while (item.length>i && !valido)
    { if(item.charAt(i) !=" ")
    valido=true;
    i++;
    }
    return (valido);
    }

    //funzione per convalidare il Checkbox
    function ckboxok(item)
    { if(!item) return false;
    else return true;
    }

    //funzione per convalidare un indirizzo e-mail con due campi separati dalla chiocciola
    function mailok(item)
    { var at=item.indexOf('@',0);
    var apice=item.indexOf('\'',0);
    var virgolette=item.indexOf('\"',0);
    var underscore=(document.form.mail2.value).indexOf('\_ ',0);
    var spazio=item.indexOf(' ',0);
    var backslash=item.indexOf('\\',0);
    var punto=(document.form.mail.value).indexOf('\.',0);

    if((!(lungok(document.form.mail.value,1) && at==-1 && apice==-1 && virgolette==-1 && spazio==-1 && backslash==-1 && punto==-1)) || (!(lungok(document.form.mail2.value,4) && at==-1 && apice==-1 && virgolette==-1 && spazio==-1 && underscore==-1 && backslash==-1))) return false;
    else return true;
    }

    //funzione per convalidare un indirizzo e-mail con un campo
    function ValidEmail(item)
    { var chiocciola=item.indexOf('@',0);
    var at=item.indexOf('@',chiocciola+1);
    var apice=item.indexOf('\'',0);
    var virgolette=item.indexOf('\"',0);
    var underscore=item.indexOf('_',chiocciola+1);
    var spazio=item.indexOf(' ',0);
    var backslash=item.indexOf('\\',0);

    if(!lungok(item,5)) return false;
    if(chiocciola==-1 || at!=-1) return false;
    else
    { if(apice!=-1 || virgolette!=-1 || spazio!=-1 || underscore!=-1 || backslash!=-1 || chiocciola==0 || chiocciola==(item.length-1)) return false;
    }
    return true;
    }

    //funzione per controllare se è un numero intero
    function numint(item)
    { var valido=false;
    var punto=item.indexOf('.',0);

    if (txtok(item) && !isNaN(item) && punto==-1) return true;
    else return false;
    }

    //funzione per controllare se è un numero decimale (ex: 78.9 ==> bisogna utilizzare il punto)
    function numdec(item)
    { var valido=false;
    var punto=item.indexOf('.',0);
    var doppiopunto=item.indexOf('.',punto+1);
    var a=parseInt(item.length);
    var b=parseInt(punto+1);
    var decimali=a-b;

    if (numint(item)) return true;
    else
    { if (txtok(item) && !isNaN(item) && (decimali<=3) && (doppiopunto==-1)) return true;
    else return false;
    }
    }

    //funzione che controlla la data
    function dataok(g,m,a)
    { mese=new Array(11);
    mese[0]=31;
    mese[1]=28;
    mese[2]=31;
    mese[3]=30;
    mese[4]=31;
    mese[5]=30;
    mese[6]=31;
    mese[7]=31;
    mese[8]=30;
    mese[9]=31;
    mese[10]=30;
    mese[11]=31;

    if ((numint(g) && numint(m) && numint(a)))
    { if ((m>=1 && m<=12) && (lungok(a,4)) && (a>0))
    { if (bisestile(a)) mese[1]=29;
    if ((g>=1) && (g<=mese[m-1])) return true;
    else
    error(document.form.giorno,"Giorno non corretto");
    }
    else
    error(document.form.giorno,"Mese o anno non corretto");
    }
    else
    error(document.form.giorno,"I campi devono essere tutti numeri");
    }

    //Funzione che controlla se un anno è bisestile
    function bisestile(a)
    { var b;
    b=a%4;
    if (b==0) return true;
    else return false;
    }

    // Inserisce la data (aaaammgg)nel campo datahusa
    function dataestesa_usa()
    { var data="";
    data=(document.form.anno.value) + (document.form.mese.value) + (document.form.giorno.value);
    return (data);
    }

    // Inserisce la data (ggmmaaaa)nel campo datahit
    function dataestesa_it()
    { var data="";
    data=(document.form.giorno.value) + (document.form.mese.value) + (document.form.anno.value);
    return (data);
    }

    //visualizza un avviso di errore
    function error(item,text)
    {//interruzione appena abbiamo trovato un errore
    if(err)return;
    window.alert(text);
    item.select();
    item.focus();
    err=true;
    }

    //funzione principale di convalida
    function Validate()
    { err=false;
    if(!ckboxok(document.form.ckb.checked))
    error(document.form.ckb,"Se volete continuare, flaggare il campo Accetto!");
    if(!txtok(document.form.nome.value))
    error(document.form.nome,"Per favore, inserire il proprio Nome");
    if(!mailok(document.form.mail.value))
    error(document.form.mail,"Mail errata: prima parte");
    if(!mailok(document.form.mail2.value))
    error(document.form.mail2,"Mail errata: seconda parte");
    if(!ValidEmail(document.form.mail3.value))
    error(document.form.mail3,"Mail 2 errata");
    if(!numint(document.form.intero.value))
    error(document.form.intero,"Il numero inserito non è intero");
    if(!numdec(document.form.decimale.value))
    error(document.form.decimale,"Il numero inserito non è decimale");
    dataok((document.form.giorno.value),(document.form .mese.value),(document.form.anno.value));
    dataamg=dataestesa_usa();
    datagma=dataestesa_it();
    return !err; /*true se non ci sono errori*/
    }
    </script>

    </head>

    <body>
    <table width="690" border="0" cellspacing="0" cellpadding="20" height="400" align="center">
    <tr>
    <td bgcolor="#99CCFF">
    <form name="form" method="post" action="campi-ok.html" onSubmit="return Validate();">
    Accetto
    <input type="checkbox" name="ckb" checked>


    Nome
    <input type="text" name="nome">


    E-mail
    <input type="text" name="mail"> @ <input type="text" name="mail2">


    E-mail 2
    <input type="text" name="mail3">


    Numero intero
    <input type="text" name="intero">


    Numero decinale
    <input type="text" name="decimale">


    Data
    <input type="text" name="giorno" size="2"> \ <input type="text" name="mese" size="2"> \ <input type="text" name="anno" size="4">
    <input type="hidden" name="dataamg">
    <input type="hidden" name="datagma">


    <input type="submit" name="Submit" value="Spedisci">
    <input type="reset" name="reset" value="Cancella">


    </form>
    </td>
    </tr>
    </table>
    </body>
    </html>

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.