Visualizzazione risultati 1 fino 11 di 11

Discussione: Controllo campi facoltativi form

  1. #1
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito Controllo campi facoltativi form

    Buona sera a tutti, ho un problema con i controlli su un form,
    ho imparato ad usare le funzioni di controllo seguendo questo tutorial
    Link
    Domanda:
    C'è la possibilità di fare un controllo su un campo facoltativo, cioè io ho un form dove si può inserire url del proprio spazio, ed è un campo facoltativo, ho necesità che se viene inserito sia fatto con http://
    E magari se si potesse fare anche con il campo e-mail

    ho provato ad inserire la stringa così:

    Codice HTML:
    .........
    var isUrl_reg_exp = new RegExp("/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/") ;
    ........
    
    else if (!isUrl_reg_exp.test(www) || (www == "undefined")) // Controllo campo www facoltativo.
           {
                alert ("Inserire url in modo corretto\n Assicurati di aver scritto anche http://");
                document.insert.www.focus();
                return false;
        }
    io ho fatto tante prove ma mi diventa sempre obbligatorio,
    cioè se metto solo il nik, unico campo obbligatorio mi esce l'alter x url
    si può fare sta cosa o comincio proprio a sfarfallare?
    Grazie

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    ciao,

    allora potresti fare dei loop if else sia per il corretto inserimento url (SOLO CON HTTP) e per il campo vuoto...definendo una variabile per ogni loop...poi confronti le variabili a cui hai dato un valore...

    se posti il form e il javascript per intero, ti posso aiutare?


    di solito i valori che devi dare alle variabili da controllare sono "true or false"
    Ultima modifica di EuroSalute : 09-06-2010 alle ore 15.45.15 Motivo: più info....
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  3. #3
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Euro sto ancora trafficando con il benedetto box commenti^^
    Ti spiego il problema tanto tu conosci il codice meglio di me, allora ho trovato uno script per memorizzare i dati inseriti nei form ( http://www.dynamicdrive.com/dynamici...rmremember.htm ) che non mi crea problemi con le istruzioni javascript per il controllo dei campi del benedetto form, ma non sono capace a scrivere "istruzioni" che non rendano il campo obbligatorio, cioè io vorrei solo controllare che se viene inserito un url che sia fatto con http:// e magari controllare che se viene scritto un indirizzo mail sia reale o cmq scritto correttamente questi due campi però non devono essere compilati obbligatoriamente.

    nell'insert c'è il codice che mi hai scritto tu per il filtro parole, e funziona perfettamente, ma:
    1) con il codice per memorizzare i dati che c'è ora ho dovuto togliere il blocco x l'obbligo del nome perchè con il fatto che viene memorizzato non si scrive nell'imput e il codice lo considera nullo. quindi ora se non si scrive un nik il messaggio è processato ugualmente^^

    2) Per il giochetto delle gif url e mail ho dovuto togliere il value="http://" altrimenti si visualizzava cmq la gif anche se non era stato inserito un url, ovviamente ora se non viene scritto url con http:// l'url è nullo si visualizza ma non apre un cappero^^ e per quanto io abbia scritto capita che non venga eseguito e vien fuori un macello...

    Quindi mi piaceva integrare il form con il controllo dati affinchè sia completo prima di esser spedito e magari bloccato dall'insert perchè bisognerebbe riscrivere tutto daccapo e risolverei il problema dell'http:// sempre che si possa fare il controllo che dico io....

    Ecco la pag x vedere il codice del form:
    http://www.iltelaiodipenelope.it/pub...prova_form.htm
    nello script mancano i "pezzi" x il controllo mail e url.....

  4. #4
    Guest

    Predefinito

    intendi farlo via client o ti va bene anche via server con php? perchè con php basterebbe fare:
    Codice PHP:
    if(isset($_POST['email']{
    $email = $_POST['email'];
    if(
    filter_var($email, FILTER_VALIDATE_EMAIL){
    /* fa quello che deve fare.... */
    }else{
    echo
    "il formato della mail non è valido";
    }
    }
    per gli url invece che FILTER_VALIDATE_EMAIL devi mettere FILTER_VALIDATE_URL...
    Questo chiaramente se puoi usare il php...
    Ultima modifica di opens : 09-06-2010 alle ore 23.39.13

  5. #5
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Grazie openes ma il controllo lo devo fare nel form^^ nell'insert c'è gia il filtro

  6. #6
    Guest

    Predefinito

    immaginavo :)
    ciao

  7. #7
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    scusa se non ti ho risposto prima.....

    prova a fare così:

    Codice PHP:

    <script language="javascript">
    <!--
    function
    validate_form()
    {
    // Variabili associate ai campi del modulo
    var nome = document.insert.nome.value;
    var
    www = document.insert.www.value;
    var
    email = document.insert.email.value;
    // Espressione regolare dell'email

    var email_reg_exp = new RegExp(" /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/ ") ;

    if (
    email != "") {//se email è diverso da nullo
    if (!email_reg_exp.test(email)) {//allora controlla che email sia corretto o valido
    alert("Occorre inserire un corretto indirizzo email o lasciare il campo vuoto!");
    document.insert.email.focus();
    return
    false;
    }
    }

    //qui fai lo stesso per l'url, solo http:
    var isUrl_reg_exp = new RegExp("/(http):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/") ;//solo http

    if (www != "") {
    if (!
    isUrl_reg_exp.test(www)) {
    alert ("Inserire url in modo corretto\n Assicurati di aver scritto anche http://, o lascia il campo vuoto.");
    document.insert.www.focus();
    return
    false;
    }
    }


    if ((
    nome == "") || (nome == "undefined")) // 1° controllo. Campo Nickname che è obbligatorio
    {
    alert("Occorre inserire il Nickname");
    document.insert.nome.focus();
    return
    false;
    }


    return
    true;
    }

    //-->
    </script>
    Ultima modifica di EuroSalute : 10-06-2010 alle ore 18.06.13 Motivo: correzzioni
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  8. #8
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Codice:
    var email_reg_exp = new RegExp(" /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/ ") ;
    
    var isUrl_reg_exp = new RegExp("/(http):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/") ;//solo http
    Così non va bene è come fare: //contenuto regexp//;
    Basta fare:
    Codice:
    var email_reg_exp =/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
    var isUrl_reg_exp = /(http):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
    Richiamare il costruttore dell'oggetto RegExp serve soltanto a creare espressioni dinamiche.
    Ad esempio:
    Codice:
    var nome= 'nome', cognome = 'cognome', regexp = new RegExp(nome + '\s+' + cognome);
    Ultima modifica di javascripter : 10-06-2010 alle ore 19.14.33

  9. #9
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Euro ma scherzi ci mancherebbe che ti devi scusare^^
    Allora ora il codice funziona a metà nel senso che i campi email e url non sono obbigatori ma non vengono nemmeno controllati, non ho capito il suggerimento di javascripter perchè non saprei come e dove corregere...
    ho provato ad sostituire i "var" ma non funziona cmq
    scusate voi sono un macello
    Grazie infinite x l'aiuto
    Ultima modifica di penelopesito : 10-06-2010 alle ore 19.46.26

  10. #10
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Devi modificare il codice che ti ha postato EuroSalute così:
    Codice:
    <script language="javascript"> 
     <!--
    function validate_form() 
    {
        // Variabili associate ai campi del modulo
        var nome = document.insert.nome.value;
        var www = document.insert.www.value;
        var email = document.insert.email.value;
        // Espressione regolare dell'email
        
         var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
    
    if (email != "") {//se email è diverso da nullo
    if (!email_reg_exp.test(email)) {//allora controlla che email sia corretto o valido
           alert("Occorre inserire un corretto indirizzo email o lasciare il campo vuoto!");
           document.insert.email.focus();
           return false;
        }
    }
    
    //qui fai lo stesso per l'url, solo http:
    var isUrl_reg_exp = /(http):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;//solo http
    
    if (www != "") {
    if (!isUrl_reg_exp.test(www))  {
                alert ("Inserire url in modo corretto\n Assicurati di aver scritto anche http://, o lascia il campo vuoto.");
                document.insert.www.focus();
                return false;
        }
    }
    
     
        if ((nome == "") || (nome == "undefined"))  // 1° controllo. Campo Nickname che è obbligatorio
        {
           alert("Occorre inserire il Nickname");
           document.insert.nome.focus();
           return false;
        }
            
        
    return true;
    }  
     
     //-->
    </script>
    Adesso dovrebbe funzionare ( io non l'ho provato )

  11. #11
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Perfetto javascripetr ora funziona come volevo io ^_^
    Grazie infinte davvero a tutti e due^^
    Buona serata

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •