用javascript到php进行表单验证

Ali*_*oud 9 javascript php forms validation

我在W3Schools中找到了这段代码.这是关于使用Javascript进行表单验证.

当用户磁带邮件格式错误时,会出现警告.

当我检查我在表单上看到的代码时onsubmit="return validateForm();,该函数在错误情况下返回false.

所以我的问题是如何从javascript中获取布尔值,以便在PHP中使用它来编写错误消息而不是使用消息框.

这是我的代码:

<html>
<head>
    <script type="text/javascript">
    function validateForm()
    {
    var x=document.forms["myForm"]["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;
      }
    }
    </script>
    </head>

    <body>
    <form name="myForm" action="demo_form.asp" onsubmit="return validateForm();" method="post">
    Email: <input type="text" name="email">
    <input type="submit" value="Submit">
    </form>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

提前致谢.

阿里

Dan*_*ham 7

您无法从javascript获取布尔值.您需要做的是提前准备好错误div.像这样的东西:

<body>
<form name="myForm" action="demo_form.asp" onsubmit="return validateForm();" method="post">
Email: <input type="text" name="email">
<div id="error"></div>
<input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

添加css以隐藏它.然后在验证表单中,使用javascript来更改错误div的HTML.

  if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
      document.getElementById("error").innerHTML="Not a valid e-mail address";
      return false;
  }
Run Code Online (Sandbox Code Playgroud)

"回归虚假"; 部分是告诉表格不要提交.正如其他答案中提到的,PHP和Javascript没有接口.PHP是服务器端,Javascript是客户端.他们不互相交谈.但是,它们都可以修改HTML.请记住,Javascript总是在浏览器中运行.因此,如果它需要向PHP发送内容,您需要使用AJAX来调用服务器端PHP脚本并以这种方式发送信息.但是,大多数情况下,当您使用Javascript时,不是PHP需要信息,而是用户.所以使用Javascript来修改HTML就可以了.


MRR*_*ERS 6

if (..)
{
   document.getElementByID('error').InnerHTML = "Not a valid e-mail address!";
   return false;
}
else
{
   document.getElementByID('error').InnerHTML = "";
}
Run Code Online (Sandbox Code Playgroud)

并在您的标记中添加:

<span id="error"></span>
Run Code Online (Sandbox Code Playgroud)