【问题标题】:Getting JavaScript validation to work with PHP让 JavaScript 验证与 PHP 一起工作
【发布时间】:2015-01-30 04:21:59
【问题描述】:
<?php
if (isset($_POST['submit']) ) {
//send to database
}
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <script>
    function validateForm() {
        var usernameentry = document.forms["registrationform"]["username2"].value;
        var passwordentry = document.forms["registrationform"]["password2"].value;
        var nameentry = document.forms["registrationform"]["password2"].value;

        var emailentry = document.forms["registrationform"]["email"].value;
        var atpos = emailentry.indexOf("@");
        var dotpos = emailentry.lastIndexOf(".");



        if (usernameentry.length < 3  ||  username.length > 20){
            alert("Username must be inbetween 4 and 20 characters");
            return false;
        }

        else if (passwordentry.length < 3  ||  password.length > 20){
            alert("Password must be inbetween 4 and 20 characters");
            return false;
        }

        else if (nameentry.length < 3  ||  name.length > 45){
            alert("Name must be inbetween 4 and 45 characters");
            return false;
        }


        else if (atpos<1 || dotpos<atpos+2 || dotpos+2>=emailentry.length  || emailentry.length > 154) {
            alert("Not a valid e-mail address");
            return false;
        }

        else
        {
            return true;
        }
    }
    </script>
</head>

<body>  
    <form name="registrationform" method="post" action="login.php" onsubmit="return validateForm();">

    Name: <input type="text" name="name"/>
    <br/>
    <br/>
    Email: <input type="text" name="email"/>
    <br/>
    <br/>
    Username: <input type="text" name="username2"/>
    <br/>
    <br/>
    Password: <input type="password" name="password2"/>
    <br/>
    <br/>
    <input type = "submit" name = "submit" value = "submit" />
    <br/>
    <br/>
    </form>
</body>

我希望 if 语句的内容仅在使用 JavaScript 验证表单时运行,无论返回的值是真还是假,它都会运行。

我猜我需要做的类似于

if (isset($_POST['submit']) && onsubmit == true)

显然这不对,但我不知道该怎么做。

我知道使用 php 进行验证是一种更合乎逻辑的方法,但我需要演示 JavaScript 的使用。

【问题讨论】:

  • 你所写的应该完全符合你的要求。但是,请记住,您不能依赖实际运行的 JavaScript,因为可以从其他位置发布到此页面。但是对于一个简单的解决方案,应该这样做。
  • 无需在PHP中添加"onsubmit",如果onsubmit在前面没有错误时已经运行,当它返回true并继续提交表单时。
  • 问题是if语句的内容不管JavaScript返回的值是真还是假都会运行。

标签: javascript php html


【解决方案1】:

您不需要这样做。当表单被验证时,它将被发送到 login.php

你可以看到这个问题HTML/Javascript: Simple form validation on submit

此外,还有很多库可以帮助您 http://www.javascript-coder.com/html-form/javascript-form-validation.phtml

【讨论】:

  • 我发现由于 Google Chrome 中的缓存,它无法正常工作。还是谢谢
猜你喜欢
  • 2014-12-17
  • 1970-01-01
  • 1970-01-01
  • 2017-06-25
  • 2011-02-25
  • 1970-01-01
  • 1970-01-01
  • 2020-04-15
  • 2010-09-14
相关资源
最近更新 更多