php - 使用 javascript 到 php 的表单验证

标签 php javascript validation forms

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

当用户输入错误的邮件格式时,会出现警告。

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

所以我的问题是如何从 javascript 获取 bool 值以在 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>

提前致谢。

阿里

最佳答案

您无法从 javascript 获取 bool 值。你需要做的是提前准备好错误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>

给它添加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;
  }

“返回错误;”部分是告诉表单不要提交。正如其他答案中提到的,PHP 和 Javascript 没有接口(interface)。 PHP 是服务器端,Javascript 是客户端。他们不互相交谈。但是,它们都可以修改 HTML。请记住,Javascript 始终在浏览器中运行。因此,如果它需要将内容发送到 PHP,则需要使用 AJAX 调用服务器端 PHP 脚本并以这种方式发送信息。然而,大多数时候,当您使用 Javascript 时,需要信息的不是 PHP,而是用户。所以使用 Javascript 修改 HTML 就可以了。

关于php - 使用 javascript 到 php 的表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526359/

相关文章:

javascript - 使用 jquery.validate 循环每个失败的规则

javascript - 将 PHP 多维数组转换为 JavaScript 符号

javascript - 使用innerHTML和GetElementById在输入框中插入值

jquery - 如何使用 jQuery Validate 插件验证具有多个 div 的表单?

php - 在用户桌面上动态创建 doc/docx 文档

javascript - 轨道 3 : submit_tag does not :confirm (while link_to does)

validation - 如何测试非域类上的 Grails 验证

php - 使用 Php PDO Insert 语句

php - 存储基于日期的可用性的最有效方法是什么

php - 重定向到新页面后 MySQL 数据库未加载