提交表格确认文本

时间:2016-02-21 12:14:01

标签: javascript php jquery html

我的“你的邮件已经提交了!”有问题。用户单击表单上的提交按钮后的文本。问题是这个文本出现在开头,即使还没有点击过,所以当你去我的页面时,这个文本已经存在......这里有什么问题?

形式:

<form role="form" id="contactForm">
     <div class="row">
            <div class="form-group">
                 <input type="text" class="form-control" name="name" id="name" placeholder="Wpisz swoje imię, nazwisko" required="required">
            </div>
            <div class="form-group">
                <input type="email" class="form-control" name="email" id="email" placeholder="Enter email" required>
            </div>

        <div class="form-group">
            <textarea id="message" name="message" class="form-control" rows="5" placeholder="Enter your message" required></textarea>
        </div>
        <button type="submit" id="form-submit" class="btn-block">Wyślij wiadomość</button>
 <div id="msgSubmit" class="h3 text-center hidden">Your message has been submitted!</div>
     </div>
    </form>

JS:

<script>
$(document).ready(function() {
    $("#contactForm").on("submit", function(event) {
        if (event.isDefaultPrevented()) {
        } else {
            event.preventDefault();
            submitForm();
        }
    });

    $("#msgSubmit").removeClass("hidden");
});

function submitForm() {
    $.ajax({
        type: "POST",
        url: "mail.php",
        data: $("#contactForm").serialize(),
        success: function(text) {
             if (text == "success"){
                formSuccess();
            }
        },
        error : function() {
        }
    });
}

$(document).ready(function formSuccess() {
    $("#msgSubmit" ).removeClass( "hidden" );
});

</script>

PHP:

<?php
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];

$EmailTo = "unknown@unknwon.com.pl";
$Subject = $name;

$message .= "\n\n" . 'From: '. $email;
$success = mail($EmailTo, $Subject, $message);

// redirect to success page
if ($success){
   echo "success";
}else{
    echo "invalid";
}
?>

2 个答案:

答案 0 :(得分:0)

我有:

  1. 在提交事件中移动了删除类。

  2. 删除了&#34; ready&#34;最后的处理程序,因为我认为没有必要。

  3. 在ajax调用结束时添加了一个add类

  4. 脚本(第一个选项):

    <script>
    $(document).ready(function() {
        $("#contactForm").on("submit", function(event) {
            if (event.isDefaultPrevented()) {
            } else {
                event.preventDefault();
                $("#msgSubmit").removeClass("hidden");
                submitForm();
            }
        });
    
    });
    
    function submitForm() {
        $.ajax({
            type: "POST",
            url: "mail.php",
            data: $("#contactForm").serialize(),
            success: function(text) {
                $("#msgSubmit" ).addClass( "hidden" );
            },
            error : function() {
                    $("#msgSubmit" ).addClass( "hidden" );
            }
        });
    }
    
    </script>
    

    第二个选项(如果成功则仅在结尾处留言):

    <script>
    $(document).ready(function() {
        $("#contactForm").on("submit", function(event) {
            if (event.isDefaultPrevented()) {
            } else {
                event.preventDefault();
                submitForm();
            }
        });
    
    });
    
    function submitForm() {
        $.ajax({
            type: "POST",
            url: "mail.php",
            data: $("#contactForm").serialize(),
            success: function(text) {
                if (text == "success") {
                    $("#msgSubmit" ).removeClass( "hidden" );
                    setTimeout(function() {
                        $("#msgSubmit" ).addClass( "hidden");    
                    }, 3000);
                }
            },
            error : function() {
                /* You probably want to add an error message as well */
                $("#msgError" ).removeClass( "hidden" );
            }
        });
    }
    
    </script>
    

答案 1 :(得分:0)

您要从hidden中的#msgSubmit容器中移除课程document.ready。只有在成功提交表单后才能启用此消息。

评论该行如下:

$(document).ready(function() {
    $("#contactForm").on("submit", function(event) {
        if (event.isDefaultPrevented()) {
        } else {
            event.preventDefault();
            submitForm();
        }
    });

    //$("#msgSubmit").removeClass("hidden"); // comment this line
});