0

我以前从未创建过联系表格,并且由于某种原因无法提交此表格。它验证得很好,但是当我单击提交时,它什么也不做。没有错误。没有什么。我已经为此工作了 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';
    }

}

?>

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

4

2 回答 2

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 />
于 2013-06-27T23:19:20.190 回答
0

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

name, email, budget, message

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

name, email, budget, text

您的 PHP 脚本将无法找到名为“text”的字段,因此您的表单似乎实际上正在提交,但您的 PHP 脚本没有返回让库认为它已完全完成所需的“true” . 如果您解决了消息/文本命名问题,您应该更接近工作往返。

于 2013-06-28T14:09:32.810 回答