1

当页面加载时表单被隐藏并在单击“发送我们的邮件”时显示,我已经能够这样做,当用户单击“发送我们邮件”按钮时,表单将向下滑动,使用 jquery . 但现在面临的挑战是,当我单击“发送邮件”按钮时,页面会重新加载,这会使 jquery 再次运行并且表单再次被隐藏。虽然我在提交之前检查了这些字段以确保它们是否包含值。但是现在,即使在单击表单中的“发送邮件”按钮后字段是否包含值,页面也会重新加载并使表单再次隐藏。请问谁能告诉我我能做些什么来解决这个问题?感谢期待。

下面是我的 php 和 jquery 代码:

<script type="text/javascript">
$(function(){
    $("#contact_Holder").hide();
    slideDown();
});

function slideDown(){
    $("#slideDown").click(function() {
        $("#contact_Holder").slideDown("normal");
    });
    $("#sendmail").click(function() {
        $("#contact_Holder").show();
    });
}

<?php 
if(isset($_POST['sendmail']))
{
if(!(isset($_POST['txtname']) || ($_POST['txtsubject']) || ($_POST['txtmessage'])) || empty($_POST['txtname']) || empty($_POST['txtsubject']) || empty($_POST['txtmessage']))
    {
echo '<font color="#090" size="3" face="Palatino Linotype,serif">'."please fill all fields thank you!".'</font>';
    }
else
{
$to = 'info@mail.com';
$subject = $_POST['txtsubject'].' '.$_POST['txtname'];
                $body = $_POST['txtmessage'];

                if(mail($to,$subject,$body))
                {
                    echo('<font color="#090" size="3" face="Palatino Linotype,serif">'."Your message has been sent successfully".'</font>');
                }
                else{ echo('<font color="#090" size="3" face="Palatino Linotype,serif">'."Message Delivery Failed!".'</font>'); }
            }
        }
    ?>
4

2 回答 2

2

简而言之,您需要:

  1. 将 jQuery 附加onClick到您的提交按钮。
  2. e.preventDefault()在单击功能的顶部调用(这将停止默认按钮行为)。
  3. 使用 jQuery Ajax 提交表单

这应该涵盖对问题进行排序所需的步骤。

于 2013-02-25T08:43:46.573 回答
0

我认为单击发送邮件时您没有通过 ajax 发布数据。因此,由于提交了表单,页面会重新加载。您必须通过ajax发送数据并调用该方法

防止默认()

在您的 ajax 发送方法中避免页面重新加载。

于 2013-02-25T08:46:08.523 回答