JavaScript 不与 HTML 和 PHP 一起工作


JavaScript Not Working with HTML and PHP

我正在尝试创建一个具有基本HTML的简单注册表,并PHP将数据插入我的数据库。基本上,我想在插入数据之前先验证字段,因此我创建了一个外部JavaScript文件。问题是,它在下一页上显示实际的JavaScript代码,而不是验证!

我的 HTML 文件:

<html>
<head>
    <title>Register Page</title>
<body>
<form id="register" method="POST" action="register.js" onsubmit="return verify()" action="register.php">
    Forename: <input type="text" name="forename"><br>
    Lastname: <input type="text" name="surname"><br>
    Password: <input type="password" name="password"><br>
    <input type="submit" value="Register">
</form>
</body>
</head>
</html>

我的 JavaScript 文件:

<script type="text/javascript">
    function verify(){
        var forename = document.getElementById["forename"].value;
        if(forename == null || forename == ""){
            alert("Forename is empty");
            return false;
        }
    }
</script>   

不仅仅是验证,我被重定向到一个新网页,向我展示我在上面编写的代码。

我是Web开发的新手,如果有人可以帮助我,那将意味着很多。我只想在将字段添加到数据库之前验证它们。

你必须

改变两件事

将 id 添加到输入控件,因为您是通过 Id 提取文本的值

<input type="text" name="forename" id="forename">

getElementById() 的语法

var forename = document.getElementById("forename").value;

一旦您验证用户名和密码。提交表格

<script type="text/javascript">
    function verify(){
        var forename = document.getElementById("forename").value;
        if(forename == null || forename == ""){
            alert("Forename is empty");
            return false;
        }
    }
</script>

<form id="register" method="POST" onsubmit="return verify()" action="register.php">
Forename: <input type="text" id="forename"><br>
Lastname: <input type="text" name="surname"><br>
Password: <input type="password" name="password"><br>
<input type="submit" value="Register">
</form>

我认为你应该重新检查 document.getElementById["forename"] 的语法

它应该是document.getElementById("forename")

您可以尝试逐步调试。例如,尝试控制台.log。

var forename = document.getElementById("forename").value;
console.log(forename);

尝试Chrome/Firebox Inspect 元素>控制台,看看是否打印了任何内容。

希望这有帮助。

和平! xD

你不应该声明注册.js作为你的<form>action<form>元素的 action 属性告诉浏览器将表单数据发送到(POSTGET)到哪里,这就是您在浏览器中注册.js的原因。

您需要拦截提交表单的浏览器,进行验证,然后将数据发送到您的PHP文件(register.php)。可能值得阅读一些关于javascript表单验证的教程,例如这个教程点一。

你可以做的是将你的洞脚本变成php的回显,然后为js创建一个php验证,并检查js是否成功完成,如果是,则执行脚本。

如果你想让你的javascript在同一个HTML页面上,那么把这个类型

<html>
<head>
<title>Register Page</title>
<script type="text/javascript">
function verify(){
    var forename = document.getElementById["forename"].value;
    if(forename == null || forename == ""){
        alert("Forename is empty");
        return false;
    }
}
</script> 
</head>
<body>
<form id="register" method="POST" action="" onsubmit="return    verify()" action="register.php">
Forename: <input type="text" name="forename"><br>
Lastname: <input type="text" name="surname"><br>
Password: <input type="password" name="password"><br>
<input type="submit" value="Register">
</form>
</body>
</html>