【发布时间】:2011-11-24 18:57:18
【问题描述】:
我目前正在使用电子邮件表单,在提交电子邮件地址后会发布一些文本。我想为此添加一个验证选项,这样我就不会收到发送给我的虚假信息。下面我附上了我想使用的 html 代码、javascript、php 和验证代码。即使电子邮件无效,我目前仍遇到表单仍在处理的问题。请帮忙。
HTML
<form action="scripts/women-logo-white-process.php" method="post" id="contact_form_women_logo_white" name="ContactForm" onsubmit="return ValidateContactForm();">
<div style="width: 179px; margin-left: 115px">
<div style="width: 179px;">
<input type="text" name="Email" id="email" value="email" rel="req" tabindex="2" class="text-area" />
</div>
<div id="loader" style="width: 121px; margin-left: 27px;">
<div class="submit-button" style="width:121px;"><input type="submit" name="" value=""></div>
</div>
</div>
</form>
PHP
<?php
$toemail = 'orders@paroteesclothing.com';;
$email = $_POST['email'];;
$messageBody = "Email: " . $email;
if(mail($toemail, 'Mens Logo White' . $subject, 'From: ' . $email)) {
echo '
<div>
<div class="success"></div>
<div class="email-text">Thank you for your interest in our products. We will notify you as soon as this product is available. Until then please check back for new designs and follow use on Twitter & Facebook @ParoteesApparel.</div>
</div>';
} else {
echo '
<div>
<div class="error"></div>
<div class="email-text">There was a problem with your submission, please reload this page and try again.</div>
</div>';
}
?>
当前的 Javascript
$(function () {
$('#contact_form_men_logo_white').submit(function (e) {
e.preventDefault();
var form = $(this);
var post_url = form.attr('action');
var post_data = form.serialize();
$('#loader', form).html('<div style="margin-left: -30px; margin-bottom: 35px; margin-top: -20px;"><div class="loader"></div><div class="wait-text">Please wait...</div></div>');
$.ajax({
type: 'POST',
url: post_url,
data: post_data,
success: function (msg) {
$(form).fadeOut(500, function () {
form.html(msg).fadeIn();
});
}
});
});
});
我想添加到我当前的 Javascript 中的验证脚本
function ValidateContactForm() {
var email = document.ContactForm.Email;
if (email.value == "")
{
window.alert("Please enter a valid e-mail address.");
email.focus();
return false;
}
if (email.value.indexOf("@", 0) < 0)
{
window.alert("Please enter a valid e-mail address.");
email.focus();
return false;
}
if (email.value.indexOf(".", 0) < 0)
{
window.alert("Please enter a valid e-mail address.");
email.focus();
return false;
}
return true;
}
【问题讨论】:
-
什么是“脚趾甲”? (我尝试将其解读为“发送电子邮件”但失败了。)如果您有一组电子邮件过滤器,它们会是“脚趾邮件剪裁器”吗?此外,如果您打算使用 JS 进行客户端电子邮件验证,请使用正则表达式或其他东西;这是一个可怕的电子邮件地址检查。
-
我将您的代码提取到jsfiddle.net/Ya4d6,如果我按回车键或确定,似乎一切正常!?
-
是“to email”,是指发送邮件的邮箱地址
标签: javascript jquery validation email submit