Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di seby81
    Registrato dal
    Mar 2009
    Messaggi
    38

    Convalidare dati di una form di contatto. Dove sbaglio?

    Innanzitutto salve a tutti i grandi esperti di questo forum. Vengo subito al dunque.

    Ho una form di contatto con dei campi nome, email, e messaggio. La form funziona ed invia perfettamente la mail alla mia casella di posta. Il mio problema è quello della convalida dei dati. Praticamente quando un campo non è compilato funziona soltanto il messaggio alert di errore ma quindi clicco su ok e' come se lo bypassasse e mi porta alla pagina successiva in cui dico che la mail è stata inviata con successo.

    il codice che utilizzo è:

    <script>
    <!--

    function checkData()
    {
    var correct = true
    if (document.form.nome.value == "") {correct = false; alert("Inserisci il tuo nome !")}
    if (document.form.email.value == "") {correct = false; alert("Inserisci il tuo indirizzo e-mail !")}
    if ((document.form.email.value.indexOf("@") == -1 ) && (document.form.mail.value !== "")) {correct = false; alert("Indirizzo e-mail non valido !")}
    if (document.form.messaggio.value == "") {correct = false; alert("Inserisci il messaggio !")}
    return correct
    }
    //-->
    </script>




    e il form è:


    <form id="form" name="form" method="post" action="mail.php" onSubmit="return checkData()">
    <div align="center" class="Stile9"></div>
    <label>
    <div align="center"><span class="Stile9">Nome*</span>
    <input type="text" name="nome" />
    </div>
    </label>
    <p align="center"> <span class="Stile9">Email*</span>
    <label>
    <input name="email" type="text" id="email" />
    </label>


    </p>
    <p align="center">
    <textarea name="messaggio" cols="30" rows="10" id="messaggio"></textarea>
    </p>
    <p align="center">
    <label>
    <input type="submit" name="Invia" value="Invia" /></form>


    Ragazzi scusate la mia ignoranza per una cosa che per voi credo sia semplice, ma non so piu dove sbattere la testa, sto andando al manicomio. Vi ringrazio anticipatamente. Saluti Seba.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    cambia questa riga:
    if ((document.form.email.value.indexOf("@") == -1 ) && (document.form.mail.value !== ""))
    con questa
    if ((document.form.email.value.indexOf("@") == -1 ) && (document.form.mail.value != ""))
    c'è un [=] di troppo, consiglio cambia (chiaramente dopo anche nella funzione) il nome e id del form, dato che form è una parola riservata e con alcuni browser potrebbe non funzionare.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di seby81
    Registrato dal
    Mar 2009
    Messaggi
    38
    Innanzitutto grazie Andrea per la tua tempestiva risposta. Ho provato a cambiare quella riga, e ho anche cambiato il nome del form, ma niente... il problema è sempre lo stesso, quando clicco su ok nel messaggio alert, mi porta comunque direttamente alla pagina 'mail.php' cosi facendo mi possono arrivare anche email vuote, capisci? Io vorrei che se un campo non e' compilato dopo aver ricevuto l'alert e premuto su ok, si rimanga nella pagina della form.
    Eppure a parte quello che mi hai già segnalato io non vedo nulla di anomalo nello script.. dov'e' che sbaglio? Help me

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    (document.form.email.value != "")
    sempre in quella riga avevi scritto mail invece di email, pertanto andava in errore e spediva il forum.
    Consiglio se non hai firefox (completo di firebug) scaricatelo e testa le funzione con quel browser.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di seby81
    Registrato dal
    Mar 2009
    Messaggi
    38
    Risolto finalmente! Era proprio quello l'errore Andrea, ti ringrazio sei stato gentilissimo, mi hai salvato un pomeriggio.

    Grazie ancora. Seby

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.