Visualizzazione dei risultati da 1 a 7 su 7

Discussione: controllo form

  1. #1

    controllo form

    salve ragazzi,
    ho un piccolo problema.. devo verificare i dati di un campo form abb. complesso ma non son capace (
    Questi sono i campi da verificare:

    Username (non deve avere spazi, accenti e caratteri strani)
    Pw (non deve avere spazi, accenti e caratteri strani)
    Ripeti pw (deve essere uguale alla prima)
    E-mail (verificare la correttezza)
    Privacy (campo checkbox - obbligatorio)
    Sesso (campo select - obbligatorio)
    Nome (campo text - obbligatorio)
    Cognome (campo text - obbligatorio)
    CAP (campo text - obbligatorio)
    Citta' (campo text - obbligatorio)
    Data nascita (formato gg/mm/aaaa)

    chi sa' aiutarmi???? E' 1 settimana che sbatto la testa senza risultati!
    grazieeeeee
    luca

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    usa le espressioni regolari (oppure guarda la mia pillola in firma se può servirti)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    la tua pillola sarebbe perfetta, l'unica cosa che non so' come implementare è:
    come faccio a verificare che le 2 mail sono uguali?

    scusa ma non ci capisco molto di javascript!

  4. #4
    teoricamente avresti dovuto continuare nella discussione originaria...

  5. #5
    si hai anche ragione,
    ma è una settimana che perdo tempo tutte le sere a scrivere codice e/o trovare script adatti e non trovo soluzioni sintetiche.

  6. #6
    Originariamente inviato da scalcodesign
    la tua pillola sarebbe perfetta, l'unica cosa che non so' come implementare è:
    come faccio a verificare che le 2 mail sono uguali?

    scusa ma non ci capisco molto di javascript!
    se campomail1 e campomail2 sono i campi di testo che contengono i due indizzi mail allora il test e' questo:

    codice:
    if(document.getElementById('idform').campomail1.value!=document.getElementById('idform').campomail2.value){
     alert("Inserire due indirizzi mail identici.");
     return false; // per bloccare l'invio del form
    }
    ciao

  7. #7
    senti, secondo te...
    lo script che ho ora è perfetto! mi fa tutto.. (non è la pillola di fcaldera - presenta meno file di include).
    solo che non mi controlla gli spazi e i caratteri strani nell'username. Eccola qui:

    function YY_checkform() { //v4.66
    //copyright (c)1998,2002 Yaromat.com
    var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
    for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj .type=='hidden'){
    if (myReq&&myObj.value.length==0){addErr=true}
    if ((myV.length>0)&&(args[i+2]==1)){ //fromto
    var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
    } else if ((myV.length>0)&&(args[i+2]==2)){
    var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
    } else if ((myV.length>0)&&(args[i+2]==3)){ // date
    var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
    if(myAt){
    var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
    var myDate=new Date(myY,myM,myD);
    if(myDate.getFullYear()!=myY||myDate.getDate()!=my D||myDate.getMonth()!=myM){addErr=true};
    }else{addErr=true}
    } else if ((myV.length>0)&&(args[i+2]==4)){ // time
    var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
    } else if (myV.length>0&&args[i+2]==5){ // check this 2
    var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
    if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
    if(!myObj1.checked){addErr=true}
    } else if (myV.length>0&&args[i+2]==6){ // the same
    var myObj1 = MM_findObj(args[i+1]);
    if(myV!=myObj1.value){addErr=true}
    }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
    var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
    var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
    if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    if (args[i+2]==2){
    var myDot=false;
    for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
    if(!myDot){myErr+='* ' +args[i+3]+'\n'}
    }
    } else if (myObj.type=='checkbox'){
    if(args[i+2]==1&&myObj.checked==false){addErr=true}
    if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
    if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
    if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
    }
    if (myErr!=''){alert('Le informazioni richieste sono incomplete o contengono errori:\t\t\t\t\t\n\n'+myErr)}
    document.MM_returnValue = (myErr=='');
    }




    Trovi una bella estensione per dreamweaver qui: www.yaromat.com.
    Visto che non ci capisco una mazza di javascript, ho provato a inserire sopra </head> questo script che tu stesso hai segnalato ad un altro utente:
    <script language="JavaScript" type="text/javascript">
    <!--
    function ControllaUser()
    {
    var valore = document.modulo.username.value;
    var re=/[èéàìòù\s]/;
    if (valore.match(re)) {
    alert("Attenzione.");
    return false;
    }
    return true;
    }
    //-->
    </script>

    poi nel form ho messo:
    <form action="<?php echo $PHP_SELF; ?>" method="post" id="modulo" onsubmit="ControllaUser();">

    ma chiaramente non funzia..
    è perchè ho il tasto submit che richiama il controllo di yaromat o sbaglio qualcosa??
    La pagina può supportare 2 script di controllo??

    <input type="image" src="button/<?php echo $button; ?>.gif" style="margin:10px;" class="button" onclick="YY_checkform('modulo','privacy','#q','1', 'È obbligatorio acconsentire al trattamento dei dati personali','user','#q','0','Il campo username &egrave; vuoto o non &egrave; valido.','pw','#q','0','Il campo password &egrave; vuoto o non &egrave; valido.','pw2','#pw','6','Le due password non sono uguali.','e_mail','#S','2','Il campo e-mail &egrave; vuoto o non &egrave; valido.','e_mail2','#e_mail','6','Le due e-mail non sono uguali.','nome','#q','0','Il campo nome &egrave; vuoto o non &egrave; valido.','cognome','#q','0','Il campo cognome &egrave; vuoto o non &egrave; valido.','comune','#q','0','Il campo comune &egrave; vuoto o non &egrave; valido.','cap','#q','0','Il campo cap &egrave; vuoto o non &egrave; valido.');return document.MM_returnValue"/>

    thanks..

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 © 2026 vBulletin Solutions, Inc. All rights reserved.