Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    27

    Script Validatore di Form ->non funziona con IE

    Salve a tutti, avrei bisogno di un aiutino,.. proprio oggi ho inserito nel mio <head> questo
    <script> validatore di form: con tutti i browsers funziona tranne che con Internet Explorer

    <script>
    function checkData()
    {
    var correct = true
    if (document.contatti.surname.value == "") {correct = false; alert("Inserisci il tuo nome !")}
    if (document.contatti.name.value == "") {correct = false; alert("Inserisci il tuo cognome !")}
    if (document.contatti.tel.value == "") {correct = false; alert("Inserisci un numero di telefono!")}
    if (document.contatti.message.value == "") {correct = false; alert("Inserisci un messaggio di testo!")}
    if (document.contatti.email.value == "") {correct = false; alert("Inserisci un'email!")}
    if ((document.contatti.email.value.indexOf("@") == -1 ) && (document.contatti.email.value !== "")) {correct = false; alert(" e-mail non valido !")}
    return correct
    }
    </script>



    nel tag body ho scritto <body onSubmit="return checkData()">


    Qualcuno mi potrebbe aiutare?
    Grazie Infinite!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Strano... non dovrebbe fuinzionare neanche con gli altri browser che io sapia il body non supporta l'evento onsubmit, forse volevi scrivere onload? Ma sopratutto cosa vuoi fare?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    27
    Originariamente inviato da cavicchiandrea
    Strano... non dovrebbe fuinzionare neanche con gli altri browser che io sapia il body non supporta l'evento onsubmit, forse volevi scrivere onload? Ma sopratutto cosa vuoi fare?
    E' un validatore di form. le stringhe di script si riferiscono ad un form, e ne controllano se i campi sono rimasti bianchi oppure competati; inoltre controlla se l'email è stata scritta correttaemente.
    Come già detto su tutti i browser funziona, tranne che su IE..

    Questo è il form: non prestate attenzione alle stringhe in php, fa parte dell'elaboratore lato server


    <form action="index.php?modulo=invia-contatti" method="post" name="contatti">
    <fieldset>



    <span style="color:#F00"> </span><?php echo $_SESSION['nameerror'] ?></span>

    <label>Cognome:</label><input name="name" class="text" type="text" id="name" value="<?php echo $_SESSION['name'] ?>" maxlength="60"/><span class="astx">*</span>
    </p>
    <p id="surname_form">
    <span style="color:#F00"> <?php echo $_SESSION['surnameerror'] ?></span>

    <label>Nome:</label><input name="surname" class="text" type="text" id="surname" value="<?php echo $_SESSION['surname'] ?>" maxlength="60"/><span class="astx">*</span>
    </p>



    <span style="color:#F00"><?php echo $_SESSION['emailerror'] ?></span>
    <label>E-Mail:</label> <input class="text" name="email" type="text" id="email" value="<?php echo $_SESSION['email'] ?>" maxlength="100" /><span class="astx">*</span>
    </p>



    <label>Telefono:</label><input class="text" name="tel" type="text" id="tel" value="<?php echo $_SESSION['tel'] ?>" maxlength="20" /><span class="astx">*</span>
    </p>



    <span style="color:#F00"><?php echo $_SESSION['messageerror'] ?></span>
    <label>Messaggio:</label>
    </p>
    <p id="area">
    <textarea name="message" cols="26" rows="5" id="message"><?php echo $_SESSION['message'] ?></textarea><p id="astx2">*</p>
    </p>



    <span style="color:#F00"><?php echo $_SESSION['senderror'] ?></span>
    <input class="btn" type="image" src="Immagini/button_send.png" name="button" value="invia" id="button" title="Invia" />
    </p>
    </fieldset>
    </form>

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    input name="name"

    cambialo

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    e questo, onSubmit="return checkData()", come ti e' gia' stato detto, va nel <form>

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Insisto il body che io sappia non supporta onsubmit e per quello he vuoi fare ritengo che sia da mettere nel forum, ricapitolando togli l'evento onsubmit dal tag body e lo inserisci nel tag form cosi:
    <form action="index.php?modulo=invia-contatti" method="post" name="contatti" onSubmit="return checkData()">
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    27
    ho fatto un pò di prove: spostando onSubmit dal tag <body> al <form>, mi esce il validatore anche su IE ma non mi elabora correttamente il form:
    io ora vi posto il php di elaborazione: vedrete che il php prevederà lui stesso un controllo di validità preventivo nei vari campi... purtroppo non funziona e ho dovuto rimpiazzare il validatore php già incluso con uno script.

    ecco il php

    <?php

    //Includes user settings
    include('config.php');

    session_start();

    $name = $_POST['name'];
    $surname = $_POST['surname'];
    $email = $_POST['email'];
    $tel = $_POST['tel'];
    $message = $_POST['message'];
    $ip = $_SERVER['REMOTE_ADDR'];
    $error = false;

    //Reset error messages
    $_SESSION['surnamerror'] = "";
    $_SESSION['emailerror'] = "";
    $_SESSION['nameerror'] = "";
    $_SESSION['messageerror'] = "";
    $_SESSION['senderror'] = "";

    //Validation Session Variables
    $_SESSION['message'] = $message;
    $_SESSION['tel'] = $tel;
    $_SESSION['name'] = $name;
    $_SESSION['surname'] = $surname;
    $_SESSION['email'] = $email;

    //Validation

    if($surname == ""){

    $_SESSION['surnameerror'] = "Inserisci il tuo Nome.";
    $error = true;

    }


    if($name == ""){

    $_SESSION['nameerror'] = "Inserisci il tuo Cognome.";
    $error = true;

    }

    if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {

    $_SESSION['emailerror'] = "E-mail non valida.";
    $error = true;

    }

    if($email == ""){

    $_SESSION['emailerror'] = "Inserisci il tuo indirizzo di E-mail.";
    $error = true;

    }


    if($message == ""){

    $_SESSION['messageerror'] = "Inserisci un messaggio.";
    $error = true;

    }

    if($error == true) {

    $_SESSION['senderror'] = "Ci sono alcuni campi non corretti o incompleti, prego rivedere la compilazione ";
    header("Location: $contactpage");
    exit;

    } else {


    $to = $youremail;
    $sbj = "Hai ricevuto una Mail dal sistema automatico FabCon";
    $msg = "
    <html>
    <head>
    <style type='text/css'>
    body{
    font-family:'Lucida Grande', Arial;
    color:#333;
    font-size:15px;
    }
    </style>
    </head>
    <body>
    <table width='600' border='0' cellspacing='0' cellpadding='5'>
    <tr>
    <td width='121' align='right' valign='baseline'>Cognome:</td>
    <td width='459'>$name</td>
    </tr>
    <tr>
    <td width='121' align='right' valign='baseline'>Nome:</td>
    <td width='459'>$surname</td>
    </tr>

    <tr>
    <td align='right' valign='baseline'>Email:</td>
    <td>$email</td>
    </tr>
    <tr>
    <td align='right' valign='baseline'>IP:</td>
    <td>$ip</td>
    </tr>
    <tr>
    <td align='right' valign='baseline'>Telefono:</td>
    <td>$tel</td>
    </tr>
    <tr>
    <td align='right' valign='baseline'>Messaggio:</td>
    <td>$message</td>
    </tr>
    </table>
    </body>
    </html>
    ";

    $from = $email;
    $headers = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= "From: $from";


    mail($to,$sbj,$msg,$headers); //Send to you.

    //END OF EMAIL TO ME

    //START EMAIL CONFIRMATION

    $toClient = $email;
    $msgClient = "
    <html>
    <head>
    <style type='text/css'>
    body{
    font-family:'Lucida Grande', Arial;
    color:#333;
    font-size:15px;
    }
    </style>
    </head>
    <body>
    [img]"."$logo"."[/img]
    <table width='600' border='0' cellspacing='0' cellpadding='5'>
    <tr>
    <td width='117' align='right' valign='baseline'>Grazie,</td>
    <td width='463'>$name $surname</td>
    </tr>
    <tr>
    <td></td>
    <td>Abbiamo ricevuto il Vostro messaggio, Vi risponderemo al pi&ugrave; presto.</td>
    </tr>
    </table>
    </body>
    </html>
    ";
    $fromClient = $youremail;
    $sbjClient = "Grazie, $name - $yourwebsite";
    $headersClient = 'MIME-Version: 1.0' . "\r\n";
    $headersClient .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headersClient .= "From: $fromClient";

    mail($toClient,$sbjClient,$msgClient,$headersClien t); //Send to Client.

    //END EMAIL CONFIRMATION

    //Reset error messages
    $_SESSION['surnameerror'] = "";
    $_SESSION['emailerror'] = "";
    $_SESSION['nameerror'] = "";
    $_SESSION['messageerror'] = "";
    $_SESSION['senderror'] = "";

    //Reset Validation Session Variables
    $_SESSION['surname'] = "";
    $_SESSION['message'] = "";
    $_SESSION['tel'] = "";
    $_SESSION['name'] = "";
    $_SESSION['email'] = "";

    session_destroy();

    header("Location: $thankyoupage");
    exit;

    }

    ?>




    Vi ringrazio ancora per il vostro aiuto!

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.