Javascript 表单提交时出错

Javascript 表单提交时出错,javascript,php,forms,validation,Javascript,Php,Forms,Validation,我有一个表单,我已经为它编写了一个验证脚本,但是,它不能100%工作。它可以很好地输出错误,但是“提交”按钮将提交表单,即使它已经输出了警报框。有人知道为什么吗 显然并不是所有的代码都粘贴了。我只想使用所需的参数,但我需要JS验证,因为这是一个赋值。此外,UL在本部分代码之前定义,因为在此之前有一个列表 HTML: 只需更改您的html: <form name = "contactForm" onsubmit="return validateForm()" action = "fo

我有一个表单,我已经为它编写了一个验证脚本,但是,它不能100%工作。它可以很好地输出错误,但是“提交”按钮将提交表单,即使它已经输出了警报框。有人知道为什么吗

显然并不是所有的代码都粘贴了。我只想使用所需的参数,但我需要JS验证,因为这是一个赋值。此外,UL在本部分代码之前定义,因为在此之前有一个列表

HTML:


只需更改您的html:

    <form name = "contactForm" onsubmit="return validateForm()" action = "form.php">


必须在ValidateForm()函数之前添加关键字return

你没有任何东西告诉它不要提交表格。“return false”只是将消息发回。您需要去掉OnSubmit标记,并从提交按钮的onClick调用函数。然后,只有当返回TRUE时,才提交表单。

可能的副本至少在发布问题之前创建一个小提琴
function validateForm()
{
  var x=document.forms["contactForm"]["fname"].value; //Gets the form and field name from the HTML

  if (x==null || x=="") //If the field "fname" contains null, or nothing, then output an alert telling the user to input something into the field. Same goes for the rest of the code.
  {
    alert("First name must be filled out");
    return false;
  }

  var x=document.forms["contactForm"]["lname"].value;

  if (x==null || x=="") 
  {
    alert("Last name must be filled out");
    return false; 
  }

  var x=document.forms["contactForm"]["email"].value;

  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; 

  if(reg.test(x) == false)
  {
      alert("Please enter a valid Email");
      return false;
  }

  if (x==null || x=="")
  {
    alert("Email must be filled out");
    return false;
  }

  var x=document.forms["contactForm"]["message"].value;

  if (x==null || x=="")
  {
    alert("Message must be filled out");
    return false;
  }
}
    <form name = "contactForm" onsubmit="return validateForm()" action = "form.php">