使用jQuery清除表单会破坏成功消息

时间:2012-11-27 05:30:46

标签: php jquery

我有一个简单的表单,您可以在其中输入电子邮件然后提交。表单通过jquery发送到php脚本,该脚本发送电子邮件(如果电子邮件有效)返回JSON响应,然后jquery根据响应显示div中的成功或失败消息。完成了所有工作。

我想要做的是清除表单,如果它被验证为成功发送。我可以清除表单字段并显示成功/失败消息没有问题,但发现了一个错误。如果有人在表单中输入了另一封电子邮件,则不会显示成功(或失败)消息。但是,php仍在正确执行数据(发送电子邮件)。仅缺少成功/失败消息。成功/失败消息在您第一次提交表单时起作用,但在重置后则不然。这是表格:

<form action="" id="emailsend" method="post" >
Email: <input type="text" name="email" /><br />
<input type="submit" name="submit" value="Submit" ; />
</form>

显示成功/失败消息的部分:

<div id="formResponse"></div> 

jquery的

$(document).ready(function(){  

$("#emailsend").submit(function(){  

    $.ajax({  
        type: "POST",  
        url: "sendunit4.php",  
        data: $("#emailsend").serialize(),  
        dataType: "json",  

        success: function(msg){  
            $("#formResponse").removeClass('error');  
            $("#formResponse").removeClass('success');  
            $("#formResponse").addClass(msg.status);  
            $("#formResponse").html(msg.message);
            $('#formResponse').fadeOut(2000);
            $('#emailsend')[0].reset();



        },  
        error: function(){  
            $("#formResponse").removeClass('success');  
            $("#formResponse").addClass('error');  
            $("#formResponse").html("There was an error submitting the form. Please try again.");  
        }  
    });  

    return false;  

});  

});  

关联PHP脚本的一部分(sendunit4.php):

$to = $_POST['email'];
if ($recipients = $swift->send($message, $failures))
{
$response_array['status'] = 'success';  
$response_array['message'] = 'Email sent!';
}
else{
$response_array['status'] = 'error';  
$response_array['message'] = 'There was a problem sending';  
}
echo json_encode($response_array); 

任何想法都将不胜感激。谢谢!

0 个答案:

没有答案