javascript - 无论验证如何提交表单

标签 javascript php html forms

我有一个表单,我已经为它编写了一个验证脚本,但是,它并不是 100% 有效。它输出错误正常,但提交按钮将提交表单,即使它已经输出了警告框。有人知道为什么吗?

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

HTML:

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

            <li><label>First name: </label><input type = "text" name = "fname" autofocus></li><br>

            <li><label>Last Name: </label><input type = "text" name = "lname"></li><br>

            <li><label>Email: </label><input type = "text" name = "email"> <button onclick = "validateEmail();return false">Check if email is valid</button> </li><br>

            <li><label>Message: </label> <br>

                <textarea rows = "10" cols = "50" name = "message"></textarea></li>

            <li> <input type = "submit"> </li>

            </form>

JavaScript:

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 onsubmit="validateForm()">

关于javascript - 无论验证如何提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23251074/

相关文章:

php - 将数据移动到新的 MySQL

php - 记录每个页面/对象的访问的最佳实践方法是什么

html - 将鼠标悬停在表格单元格上时应用 CSS 样式

javascript - 无法调用休息电话

html - 在彩色 div/背景图像上叠加向下箭头

javascript - 通过 store.find 获取当前用户 ('users' , 'me' ) 存储无效的 User 实例

javascript - 在react-router路由中使splat可选

php - 运行后如何使用 Ratchet\Server\IoServer 对象?

javascript - 使用 transformRequest 将 JSON 转换为 FormURL 编码数据

javascript - 如何检测 Firefox 中的浏览器关闭事件?