Visualizzazione risultati 1 fino 12 di 12

Discussione: controllo su form js

  1. #1
    Guest

    Predefinito controllo su form js

    Ciao ragazzi, premesso che son un asino a usare javascript, avrei bisogno di una mano per controllare 3 campi, che siano pieni, e uon, che sia una mail valida. Se così non fosse, premendo invio esce un alert, ''devi riempire i campi'' o ''la mail non è valida''. Il codice del form è il seguente:

    codice PHP:

    <form name="info" id="info" action="?php" method="post">
    <input type="text" name="mittente" id="mittente" />
    <input type="text" name="oggetto" id="oggetto" />
    <textarea name="messaggio" id="messaggio" ></textarea>
    <input type="submit" value="Invia" />
    </form>


    Chi mi può aiutare gentilmente? garzie ciao

  2. #2
    Guest

    Predefinito

    Dovresti creare una funzione da utilizzare al submit del form....
    ade esempio:
    Codice HTML:
    <form name="info" id="info" action="?php" method="post" onsubmit="return controlla(this)">
    Poi la funzione javascript:

    Codice HTML:
    <script type="text/javascript">
    function controlla(form) {
    if(form.mittente.value == "") {
    alert("Il campo mittente è vuoto!");
    form.mittente.focus();
    }
    if(form.oggetto.value == "") {
    alert("Il campo oggetto è vuoto!");
    form.oggetto.focus();
    }
    if(form.messaggio.value == "") {
    alert("Il campo messaggio è vuoto!");
    form.messaggio.focus();
    }
    }
    </script>

  3. #3
    Guest

    Predefinito

    Ok grazie, così funziona ma come facco a fare un solo aletr'' non hai compilato tutit icampi?'' senza specificare uno a uno? e poi per il controllo se la mail è valida? lo metto dopo quaesti controlli?Grazie

  4. #4
    Guest

    Predefinito

    Fai così (modifica la funzione in javacript), questo per fare un alert alla volta, senza eseguirli tutti insieme:
    Codice HTML:
    <script type="text/javascript">
    function controlla(form) {
    if(form.mittente.value == "") {
    alert("Il campo mittente è vuoto!");
    form.mittente.focus();
    return false;
    }
    else if(form.oggetto.value == "") {
    alert("Il campo oggetto è vuoto!");
    form.oggetto.focus();
    return false;
    }
    else if(form.messaggio.value == "") {
    alert("Il campo messaggio è vuoto!");
    form.messaggio.focus();
    return false;
    }
    }
    </script>
    O se vuoiu fare un alert per tutto....

    Codice HTML:
    <script type="text/javascript">
    function controlla(form) {
    if(form.mittente.value == "" || form.oggetto.value == "" || form.messaggio.value == "") {
    alert("Non hai compliato tutti i campi");
    return false;
    }
    }
    </script>
    P.S. qual'è il campo che contiene l'email?
    Ultima modifica di nokiagames : 02-04-2009 alle ore 17.27.27

  5. #5
    Guest

    Predefinito

    Gnetilissimo, per verificare la validità dell'indirizzo email invece come posso fare?

  6. #6
    Guest

    Predefinito

    Hai bisogno di una espressione regolare. Comunque potresti dire qual'è il campo che deve contenere l'email?
    Se per caso è mittente...
    Prova così (tutto il codice completo più controllo email):
    Codice HTML:
    <script type="text/javascript">
    function controlla(form) {
    if(form.mittente.value != "") {
    var corretta = form.mittente.value.match(/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)/g);
    if(!corretta) {
    alert("L'email inserita non è corretta!");
    }
    return false;
    }
    else if(form.oggetto.value == "") {
    alert("Il campo oggetto è vuoto!");
    form.oggetto.focus();
    return false;
    }
    else if(form.messaggio.value == "") {
    alert("Il campo messaggio è vuoto!");
    form.messaggio.focus();
    return false;
    }
    }
    </script>
    Ultima modifica di nokiagames : 02-04-2009 alle ore 17.40.10 Motivo: Errore... Sto correggendo

  7. #7
    Guest

    Predefinito

    Si si il campo email è il mittente, cioè a me servirebbe che facesse prima uncontrollo per verificare se i campi son pieni, come quello di prima va benissimo, poi quello della mail che verifica se funziona, in teoria basta che metto nella stessa funzione quello che mi hai scritto prima più la paerte dell'email ora...o è meglio se metto il controllo della mail dentro un altro if, cioè se verifica che i campi son pieni, fa il ocntrollo sulla mail. giusto?


    EDIT:
    io l'ho fatto così:
    codice PHP:

    <script type="text/javascript">
    function controlla(form) {
    if(form.mittente.value != "") {
    var corretta = form.mittente.value.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)/g);
    if(!corretta) {
    alert("L'email inserita non è corretta!");
    }
    return false;
    }
    else if(form.mittente.value == "" || form.oggetto.value == "" || form.messaggio.value == "") {
    alert("Non hai compliato tutti i campi");
    return false;
    }

    }

    </script>


    se non compilo i camp mi da errore, se compilo la mail in modo errato im da errore, se però complilo la mail correttamente e lascio gli altri due campi vuoti non mi da errore...cosa sbaglio?
    Ultima modifica di seneca : 03-04-2009 alle ore 11.44.04

  8. #8
    Guest

    Predefinito

    Ok, scusa ma ho fatto un pò di confusione ....
    Ho risolto con due funzioni....
    Codice HTML:
    <script type="text/javascript">
    function controlla(form) {
    if(form.mittente.value == "") {
    alert("Il campo mittente è vuoto!");
    form.mittente.focus();
    return false;
    }
    else if(form.oggetto.value == "") {
    alert("Il campo oggetto è vuoto!");
    form.oggetto.focus();
    return false;
    }
    else if(form.messaggio.value == "") {
    alert("Il campo messaggio è vuoto!");
    form.messaggio.focus();
    return false;
    }
    }
    function mail(email) {
    var mail_corretta = email.match(/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)/g);
    if(!mail_corretta) {
    alert("L'email inserita non è corretta!");
    document.info.mittente.focus();
    return false;
    }
    }
    </script>
    <form name="info" id="info" action="?php" method="post" onsubmit="return controlla(this)">
    <input type="text" name="mittente" id="mittente" onchange="mail(this.value)" />
    <input type="text" name="oggetto" id="oggetto" />
    <textarea name="messaggio" id="messaggio" ></textarea>
    <input type="submit" value="Invia" />
    </form>

  9. #9
    Guest

    Predefinito

    Figurati!:) ok cmq così è perfetto, l'unica cosa che mi da l'errore la prima volta ma se rischiaccio senza provvedere all'errore passa oltre, non lo vede due volte

  10. #10
    Guest

    Predefinito

    Capito, quello è perchè ho utilizzato onchange...
    Bisogna trovare una soluzione che al momento non riesco a completare!

    EDIT:
    Codice HTML:
    <script type="text/javascript">
    function controlla(form) {
    if(form.oggetto.value == "") {
    alert("Il campo oggetto è vuoto!");
    form.oggetto.focus();
    return false;
    }
    else if(form.messaggio.value == "") {
    alert("Il campo messaggio è vuoto!");
    form.messaggio.focus();
    return false;
    }
    }
    function mail(email) {
    var mail_corretta = email.match(/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)/g);
    if(!mail_corretta) {
    alert("L'email inserita non è corretta o non è stata inserita alcuna email!");
    document.info.mittente.focus();
    return false;
    }
    }
    </script>
    <form name="info" id="info" action="?php" method="post" onsubmit="return controlla(this)">
    <input type="text" name="mittente" id="mittente" />
    <input type="text" name="oggetto" id="oggetto" />
    <textarea name="messaggio" id="messaggio" ></textarea>
    <input type="submit" value="Invia" onclick="mail(document.info.mittente.value)" />
    </form>
    Così da un pò di problemi ma il campo email viene forzato ad essere compilato correttamente...
    Ultima modifica di nokiagames : 02-04-2009 alle ore 18.15.29

  11. #11
    Guest

    Predefinito

    ok allora ho provato a fare così:
    Codice HTML:
    function controlla(form) {
    if(form.mittente.value == "" || form.oggetto.value == "" || form.messaggio.value == "") {
    alert("Non hai compliato tutti i campi");
    return false;
    }else if(form.mittente.value != "" && form.oggetto.value != "" && form.messaggio.value != ""){
    var mail_corretta = email.match(/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)/g);
    if(!mail_corretta) {
    alert("L'email inserita non è corretta!");
    document.info.mittente.focus();
    return false;
    }
    }
    }
    Il problema è che sui campi il controllo funziona, sulla mail corretta non lo fa..cosa sto sbagliando?

  12. #12
    nrgjack non è connesso Utente
    Data registrazione
    05-06-2008
    Messaggi
    125

    Predefinito

    ti consiglio di leggere questo articolo..

    http://www.mariospada.net/2008/05/ja...di-form-c.html

Regole di scrittura

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