1

我有一个工作表单验证,在通过联系表单发送电子邮件之前检查字段。

表单验证在 twitter 引导模式中不起作用。如果所有字段均已填写且正确,则脚本会在 JS 中检查。然后将信息发送到 php 文件进行处理,并在 AJAX 中将 false 或 true 返回到 JS 文件,该文件向用户确认电子邮件是否发送。

当我尝试将其插入 Bootstrap 模式时,AJAX true 不会返回到 JS 文件,它只会在浏览器窗口中显示“true”。

它需要将“true”发送到 JS 文件,以便在单击发送时“发送按钮”在“消息成功发送”中发生变化,它将重定向到 email.php。

那么如何将“true”值传递给 JS 文件并保持模式打开以将发送按钮更改为成功消息?

代码如下:

HTML

<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
                <img class="small-logo" src="http://www.website.nl/img/logo.jpg">

              </div>
              <div class="modal-body">

                        <form class="popup-form" data-async data-target="#myModal" id="contact_form" action="email.php" method="POST">
                        <div class="forminput">
                            <p>Aanhef</p>

                                <input type="radio" name="aanhef" value="dhr" id="aanhef" required="required" />
                                <label for="dhr">Dhr.</label>
                                <input type="radio" name="aanhef" value="mvr" id="aanhef" required="required"/>
                                <label for="mvr">Mvr.</label>

                            <div id="aanhef_error" class="error">Kies uw aanhef</div>
                        </div>


                        <div class="forminput">
                            <p>Achternaam</p>
                          <input type='text' name='naam' id='naam' required="required">
                          <div id='naam_error' class='error'>Vul een geldige naam in</div>
                        </div>


                        <div class="forminput">
                        <p>Voornaam</p>                     
                          <input type='text' name='voornaam' id='voornaam' required="required">
                          <div id='voornaam_error' class='error'>Vul een geldige voornaam in</div>
                        </div>

                        <div class="forminput">
                        <p>Telefoonnummer</p>
                            <input type='text' name='telefoon' id='telefoon' required="required">
                            <div id='telefoon_error' class='error'>Vul een geldig telefoon nummer in</div>
                        </div>

                        <div class="forminput">
                        <p>Straatnaam</p>
                            <input type='text' name='straatnaam' id='straatnaam' required="required">
                            <div id='straatnaam_error' class='error'>Vul een geldige straatnaam in</div>
                        </div>

                        <div class="forminput">
                        <p>Huisnummer</p>
                            <input type='text' name='huisnummer' id='huisnummer' required="required">
                            <div id='huisnummer_error' class='error'>Vul een geldig huisnummer in</div>
                        </div>

                        <div class="forminput">
                        <p>Postcode</p>
                            <input type='text' name='postcode' id='postcode' required="required">
                            <div id='postcode_error' class='error'>Vul een geldige postcode in</div>
                        </div>


                        <div id='mail_success' class='success'>Message successfully send!</div>
                        <div id='mail_fail' class='error'>Sending email failed try emailing to email@email.com</div>

                        <div class="clear"></div>

                        <div id='submit'>
                          <input type='submit' id='send_message' value='Verstuur'>
                        </div>

                        </form>


                   </div>
                </div>
            </div>

JS

 $(document).ready(function(){
    $('#send_message').click(function(e){

        //Stop form submission & check the validation
        e.preventDefault();

        // Variable declaration
        var error = false;
        var aanhef = $('input[name=aanhef]:checked').val(); 
        var naam = $('#naam').val();
        var voornaam = $('#voornaam').val();
        var straatnaam = $('#straatnaam').val();
        var huisnummer = $('#huisnummer').val();
        var postcode = $('#postcode').val();
        var telefoon = $('#telefoon').val();

        // Form field validation
        if (aanhef == undefined) {
            var error = true;
            $('#aanhef_error').fadeIn(500);
        }
        else {
            $('#aanhef_error').fadeOut(500);
        }

        if(naam.length < 3){
            var error = true;
            $('#naam_error').fadeIn(500);
        }else{
            $('#naam_error').fadeOut(500);
        }

        if(voornaam.length < 3){
            var error = true;
            $('#voornaam_error').fadeIn(500);
        }else{
            $('#voornaam_error').fadeOut(500);
        }

        if(straatnaam.length < 6){
            var error = true;
            $('#straatnaam_error').fadeIn(500);
        }else{
            $('#straatnaam_error').fadeOut(500);
        }

        if(huisnummer == ""){
            var error = true;
            $('#huisnummer_error').fadeIn(500);
        }else{
            $('#huisnummer_error').fadeOut(500);
        }

        if(postcode.length < 5){
            var error = true;
            $('#postcode_error').fadeIn(500);
        }else{
            $('#postcode_error').fadeOut(500);
        }

        if(telefoon.length < 8){
            var error = true;
            $('#telefoon_error').fadeIn(500);
        }else{
            $('#telefoon_error').fadeOut(500);
        }


        // If there is no validation error, next to process the mail function
        if(error == false){
           // Disable submit button just after the form processed 1st time successfully.
            $('#send_message').attr({'disabled' : 'true', 'value' : 'Versturen...' });

            /* Post Ajax function of jQuery to get all the data from the submission of the form as soon as the form sends the values to email.php*/
            $.post("email.php", $("#contact_form").serialize(),function(result){
                //Check the result set from email.php file.
                if(result == 'sent'){
                    //If the email is sent successfully, remove the submit button
                     $('#submit').remove();
                    //Display the success message
                    $('#mail_success').fadeIn(500);
                }else{
                    //Display the error message
                    $('#mail_fail').fadeIn(500);
                    // Enable the submit button again
                    $('#send_message').removeAttr('disabled').attr('value', 'Send The Message');
                }
            });
        }
    });    
});

PHP

<?php

$to  = 'email@email.com' . ', '; // note the comma
$to .= 'email2@email.com';

$subject = ' Subject of email'; 

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: ' . $_REQUEST['naam'] . "<br>";
$headers .= 'Reply-To: ' . $_REQUEST['email'] . "<br>";




$message .= 'Aanhef: ' . $_REQUEST['aanhef'] . "<br>";
$message .= 'Achternaam: ' . $_REQUEST['naam'] . "<br>";
$message .= 'Voornaam: ' . $_REQUEST['voornaam'] . "<br>";
$message .= 'Straatnaam: ' . $_REQUEST['straatnaam'] . "<br>";
$message .= 'Huisnummer: ' . $_REQUEST['huisnummer'] . "<br>";
$message .= 'Postcode: ' . $_REQUEST['postcode'] . "<br>";
$message .= 'Telefoon: ' . $_REQUEST['telefoon'] . "<br>";


if (@mail($to, $subject, $message, $headers))
{
    // Transfer the value 'sent' to ajax function for showing success message.
    echo 'sent';
}
else
{
    // Transfer the value 'failed' to ajax function for showing error message.
    echo 'failed';
}
?>
4

0 回答 0