我正在尝试验证使用php将表单信息发送到一组电子邮件的表单的电子邮件字段。我正在使用Javascript验证电子邮件,它正在运行。
问题是,即使在验证返回false之后,表单仍处理信息并发送电子邮件,我会喜欢一些指导,因为我找不到我正在制作的错误。
以下是我用于表单的HTML代码:
<form id="formulario-submit" onsubmit="return Validacion();" action="procesarsolicitud.php" method="POST">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<input type="text" value="Nombre*" id="nombre" name="nombre" onclick='this.value = "";'>
</td>
</tr>
<tr>
<td>
<input type="text" value="Apellido*" id="apellido" name="apellido" onclick='this.value = "";'>
</td>
</tr>
<tr>
<td>
<!--<input type="submit" value="Enviar" id="enviar" alt="enviar">-->
<button name="enviar" value="Submit" type="submit" id="enviar" alt="enviar" width="100">
这是我用来验证电子邮件的JS代码:
<script>
function Validacion()
{
var x=document.forms["formulario-submit"]["email"].value;
var arroba=x.indexOf("@");
var punto=x.lastIndexOf(".");
if (arroba<1 || punto<arroba+2 || punto+2>=x.length)
{
alert("Not a valid Email.");
email.focus();
return false;
}
}
</script>
这是PHP代码(在一个名为procesarsolicitud.php的单独PHP文件中)我用来处理数据并发送电子邮件:
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$email = $_POST['email'];
$message = '
<html>
<head>
<title></title>
</head>
<body>
<h3>Form Data::</h3>
<tr>
<td width="200"><b>Nombre:</b></td>
<td>'.$nombre.'</td>
</tr>
<tr>
<td width="200"><b>Apellido:</b></td>
<td>'.$apellido.'</td>
</tr>
<tr>
<td width="200"><b>Email:</b></td>
<td>'.$email.'</td>
</tr>
<tr>
</tr>
</table><br />
</body>
</html>
';
// multiple recipients
$to='email1@email.com,email2@email.com';
// subject
$subject = ' Email Subject';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n".
'From: Email <info@email.com>' . "\r\n";
echo "MessageExample";
// Mail it
mail($to, $subject, $message, $headers);
提前致谢。
答案 0 :(得分:0)
您不应该首先使用JS来验证表单。确切地说..如果你这样做,你还必须检查输入服务器端(你也可以使用AJAX调用来验证服务器端的表单,然后你可以重用相同的清理器/验证器)。
关于您的具体问题,SOF&#34;提出问题&#34;不是搜索引擎。在提出问题之前,你应该投入一些时间。您的问题已被提出(例如,Google提供的第一个结果&#34; onsubmit表单返回false&#34; http://webdeveloper.com/forum/showthread.php?t=175736; SOF onSubmit returning false is not working的第一个结果)多次。
P.S。如果有任何错误,请检查控制台(参见Firebug以获取更多信息)。