javascript验证未激活,可能是由于HTML表单上的php mailer

javascript验证未激活,可能是由于HTML表单上的php mailer,php,javascript,forms,validation,mailer,Php,Javascript,Forms,Validation,Mailer,我的Javascript验证没有激活有问题。我在这个HTML表单上还有一个PHP邮件程序,一旦按下submit,它就会提交表单,并且没有进行任何验证 以下是HTML表单的代码: <form name="contact" action="mailer.php" onsubmit="return ValidateForm()" method="post"><fieldset> <tr><td><label for="name">Name

我的Javascript验证没有激活有问题。我在这个HTML表单上还有一个PHP邮件程序,一旦按下submit,它就会提交表单,并且没有进行任何验证

以下是HTML表单的代码:

 <form name="contact" action="mailer.php" onsubmit="return ValidateForm()" method="post"><fieldset>

<tr><td><label for="name">Name:</label></td>
<td><input type="text" name="name" id="name" placeholder="Enter your full name" />
</td></tr>

<tr><td><label for="email">Email:</label></td>
<td><input type="email" name="email" id="email" placeholder="Enter your email address" />
</td></tr>

<tr><td><label for="tel">Phone:</label></td>
<td><input type="tel" name="tel" id="tel" placeholder="Enter your phone number" />
</td></tr>

<tr><td><label for="message">Message:</label></td>
<td><textarea id="message" name="message" placeholder=""></textarea>
</td></tr>

<tr><td><input type="submit" value="Submit" name="submit" />
</form>

姓名:
电邮:
电话:
信息:
以下是PHP邮件程序的代码:

<?php
if(isset($_POST['submit'])) {
$to = "email@address.com.au";
$subject = "Subject";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$tel_field = $_POST ['tel'];
$message = $_POST['message'];

$body = "From: $name_field\n E-Mail: $email_field\n Phone: $tel_field\n Message:\n $message";


mail($to, $subject, $body, "From: $email_field");
echo "Data has been submitted to $to!";
echo "<a href='index.html'>Go back to Home Page</a>";
} else {
echo "error";
}
?>

以下是验证程序的代码:

<script type="text/javascript">

{function validateForm()
{
var x=document.forms["contact"]["name"].value;
if (x==null || x=="")
  {
  alert("Name field must be filled out");
  return false;
  }

   var x=document.forms["contact"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
  alert("Not a valid e-mail address");
  return false;
  }

 var x=document.forms["contact"]["tel"].value;
if (y==null || y=="")
  {
  alert("Phone number must be provided");
  return false;
  }

  var x=document.forms["contact"]["message"].value;
if (x==null || x=="")
  {
  alert("You have not entered a message");
  return false;
  }

  </script>

{函数validateForm()
{
var x=document.forms[“contact”][“name”].value;
如果(x==null | | x==“”)
{
警报(“必须填写名称字段”);
返回false;
}
var x=document.forms[“contact”][“email”]。值;
var atpos=x.indexOf(“@”);
var dotpos=x.lastIndexOf(“.”);

如果(atpos在您的
onSubmit
中,您正在调用
return ValidateForm()
,而您应该在执行
return ValidateForm()
时使用小写字母“v”。还有一些其他:

{function validateForm()
应该是
function validateForm()

在if语句之后,永远不会关闭打开大括号的函数

<form name="contact" action="mailer.php" onsubmit="return validateForm()" method="post">

然后:

function validateForm() {
    var x = document.forms["contact"]["name"].value;
    if (x == null || x == "") {
        alert("Name field must be filled out");
        return false;
    }

    var x = document.forms["contact"]["email"].value;
    var atpos = x.indexOf("@");
    var dotpos = x.lastIndexOf(".");
    if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {
        alert("Not a valid e-mail address");
        return false;
    }

    var x = document.forms["contact"]["tel"].value;
    if (y == null || y == "") {
        alert("Phone number must be provided");
        return false;
    }

   var x = document.forms["contact"]["message"].value;
    if (x == null || x == "") {
        alert("You have not entered a message");
        return false;
    }
}
函数validateForm(){
var x=document.forms[“contact”][“name”].value;
如果(x==null | | x==“”){
警报(“必须填写名称字段”);
返回false;
}
var x=document.forms[“contact”][“email”]。值;
var atpos=x.indexOf(“@”);
var dotpos=x.lastIndexOf(“.”);
如果(atpos<1 | | dotpos=x.length){
警报(“不是有效的电子邮件地址”);
返回false;
}
var x=document.forms[“contact”][“tel”].value;
如果(y==null | | y==“”){
警报(“必须提供电话号码”);
返回false;
}
var x=document.forms[“contact”][“message”]。值;
如果(x==null | | x==“”){
警报(“您尚未输入消息”);
返回false;
}
}

在您的
onSubmit
中,您正在调用
return ValidateForm()
,而您应该使用小写字母“v”执行
return ValidateForm()
。还有一些其他操作:

{function validateForm()
应该是
function validateForm()

在if语句之后,永远不会关闭打开大括号的函数

<form name="contact" action="mailer.php" onsubmit="return validateForm()" method="post">

然后:

function validateForm() {
    var x = document.forms["contact"]["name"].value;
    if (x == null || x == "") {
        alert("Name field must be filled out");
        return false;
    }

    var x = document.forms["contact"]["email"].value;
    var atpos = x.indexOf("@");
    var dotpos = x.lastIndexOf(".");
    if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {
        alert("Not a valid e-mail address");
        return false;
    }

    var x = document.forms["contact"]["tel"].value;
    if (y == null || y == "") {
        alert("Phone number must be provided");
        return false;
    }

   var x = document.forms["contact"]["message"].value;
    if (x == null || x == "") {
        alert("You have not entered a message");
        return false;
    }
}
函数validateForm(){
var x=document.forms[“contact”][“name”].value;
如果(x==null | | x==“”){
警报(“必须填写名称字段”);
返回false;
}
var x=document.forms[“contact”][“email”]。值;
var atpos=x.indexOf(“@”);
var dotpos=x.lastIndexOf(“.”);
如果(atpos<1 | | dotpos=x.length){
警报(“不是有效的电子邮件地址”);
返回false;
}
var x=document.forms[“contact”][“tel”].value;
如果(y==null | | y==“”){
警报(“必须提供电话号码”);
返回false;
}
var x=document.forms[“contact”][“message”]。值;
如果(x==null | | x==“”){
警报(“您尚未输入消息”);
返回false;
}
}

validateForm()何时生效被调用?是否存在任何javascript错误?您可以在Chrome浏览器或Firebug调试器中捕获它们…同时显示open标记…函数的右括号在哪里?我以前从未使用过FF调试。刚刚安装Firebug,看不到任何问题。Sry以前从未使用过此网站,习惯了msg.F的编码orgot点击enter键。我有右括号,但我在网上看到的一堆脚本没有,它们只是看起来像这样,所以我删除了它们,使它们看起来像一样,以防万一这是问题。validateForm()什么时候开始被调用?是否存在任何javascript错误?您可以在Chrome浏览器或Firebug调试器中捕获它们…同时显示open标记…函数的右括号在哪里?我以前从未使用过FF调试。刚刚安装Firebug,看不到任何问题。Sry以前从未使用过此网站,习惯了msg.F的编码orgot点击enter。我有一个右括号,但我在网上看到的一堆脚本没有,它们只是看起来像这样,所以我删除了它们,使它们看起来像是一样,以防万一这是个问题。它是小写的,直到我在其他地方读到,它是通过改为大写来解决的。<我已经尝试了这两种方法,并且没有r工作。我刚刚通读了你写的关于不关闭大括号的第二条评论。这与我刚刚重新格式化的代码完全相同。所以不幸的是,这并不能解决问题。@kazie151如果你发布的是你的代码,那么你的代码是错误的,需要更改。我上面发布的内容有效。你它是一样的(没有关闭函数打开大括号),但你说它不能解决问题?如果你不关闭大括号,它会导致错误,你不会得到结果你想道歉我读错了。这是漫长的一天,我现在头痛得厉害。是的,这很有效。非常感谢!)它是小写的,直到我在其他地方读到,它是通过改为大写来解决的。>。<我已经尝试了两种方法,但都不起作用。我刚刚阅读了你写的关于不关闭大括号的第二条评论。它与我的代码完全相同,只是重新格式化了一点。因此,不幸的是,这并不能解决问题问题。@kazie151如果你发布的是你的代码,那么你的代码是错误的,需要更改。我上面发布的内容是有效的。你承认它是相同的(没有关闭函数)但是你说它不能解决问题?如果你不关闭支架,它会导致错误,你不会得到结果你想道歉我读错了你写的东西。这是漫长的一天,我现在头痛得厉害。是的,这很有效。非常感谢!)