我以前从未创建过联系表单,但由于某种原因导致提交此表单时遇到问题。它验证很好,但是当我点击提交时,它什么也没做。没有错误。没有。我一直在努力工作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';
}
}
?>
我正在把头发拉出来,因为我真的希望这种特殊的形式起作用,而且我很接近。我喜欢它在同一页面上验证的方式,而不是在用户尝试提交错误填写的表单之后。我真的不希望我的用户输入整个电子邮件,然后丢失,因为他们没有输入内容,或输错了。
答案 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”它完全结束了。如果您修复了消息/文本命名问题,那么您应该更接近于工作往返。