Ajax没有提交联系表格

时间:2013-06-27 16:05:45

标签: ajax jquery form-submit contact-form jquery-validation-engine

我以前从未创建过联系表单,但由于某种原因导致提交此表单时遇到问题。它验证很好,但是当我点击提交时,它什么也没做。没有错误。没有。我一直在努力工作12个小时以上,对于我的生活,我无法弄清楚出了什么问题。这是包含AJAX代码的jquery代码。

$(document).ready(function () {
    $("#form1").validationEngine({
        ajaxSubmit: true,
        ajaxSubmitFile: "ajaxSubmit.php",
        ajaxSubmitMessage: "Thank you, We will contact you soon !",
        inlineValidation: false,
        success: function () {
            callSuccessFunction()
        },
        failure: function () {}
    })
});

这是html页面上表单的代码

<form class="form" id="form1" method="post" action="ajaxSubmit.php">   
    <input class="validate[required,custom[onlyLetter],length[0,100]] text-input" type="text" name="name" id="name"  placeholder="How may I address you?"><label for='name '>name</label><br />
    <input class="validate[required,custom[email]] text-input" type="text" name="email" id="email" placeholder="I promise, I hate spam as much as you do."><label for='email '>email</label><br />
    <input class="validate[required,length[0,100]] text-input" type="text" name="budget" id="budget" placeholder="$USD amount, please."><label for='budget '>budget</label><br />
    <textarea name="message" class="validate[required,length[6,300]] text-input" id="comment" placeholder="What's on your mind?"></textarea><br />
    <p class="submit"><input type="submit" value="Send"></p>
</form>

这是“ajaxSubmit.php代码完整

<?php

$name = $_POST['name'];
$email = $_POST['email'];
$budget = $_POST['budget'];
$body = $_POST['text'];
$receiver = "inquiry@seednouveau.com";
if (!empty($name) & !empty($email) && !empty($body)) {
    $body = "Name:{$name}\n\nBudget :{$budget}\n\nComments:{$body}";
    $send = mail($email, 'Contact Form Submission', $body, "From: {$email}");
    if ($send) {
        echo 'true';
    }

}

?>

我正在把头发拉出来,因为我真的希望这种特殊的形式起作用,而且我很接近。我喜欢它在同一页面上验证的方式,而不是在用户尝试提交错误填写的表单之后。我真的不希望我的用户输入整个电子邮件,然后丢失,因为他们没有输入内容,或输错了。

2 个答案:

答案 0 :(得分:0)

假设您使用的是2.6.1版本的jquery-validation-engine,则没有“onlyLetter”,您需要将其更改为“onlyLetterSp”。

<input class="validate[required,custom[onlyLetter],length[0,100]] text-input" type="text" name="name" id="name"  placeholder="How may I address you?"><label for='name '>name</label><br />

<input class="validate[required,custom[onlyLetterSp],length[0,100]] text-input" type="text" name="name" id="name"  placeholder="How may I address you?"><label for='name '>name</label><br />

答案 1 :(得分:0)

进一步调查之后,还有另一个错误肯定会给你带来麻烦。您的表单包含名为

的字段
name, email, budget, message

不幸的是,您的PHP页面正在查找名为

的字段
name, email, budget, text

您的PHP脚本无法找到名为“text”的字段,因此您的表单实际上可能正在提交,但您的PHP脚本未返回让库感知所需的“true”它完全结束了。如果您修复了消息/文本命名问题,那么您应该更接近于工作往返。