1

我不确定我的错误是否来自通过 PHP 将表单提交给自身,但它只是没有击中我的函数并且无论返回什么都提交。我不确定我在这里缺少什么。这是我的表格

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <title>Login Page</title>
    <script type="text/javascript" src="js/functions.js"></script>
    <!--Internal for simplicity or until bigger page -->
    <style type="text/css"> 
        #login div{display:inline;color:red;}
        input{margin-right:20px;}
    </style>
</head>
<body>
<form name="login" id="login" action="<?php $_SERVER['PHP_SELF'] ?>" method="POST" onsubmit="return CheckLogin()">
    <?php if($_POST && $win == false): ?>
        <div>Login Unsuccessful. Please Try Again</div><br />
    <?php endif ?>
        <input type="text" size="10" name="username" /><div></div>
            <br />
        <input type="password" size="10" name="password" /><div></div>
            <br />
    <input type="submit" text="Submit" />
</form>
<a href="register.php">Registration Page</a>
</body>
</html>

真的,我只是在检查用户名/密码是否为空,但它只是通过这个函数提交:

function CheckLogin()
{
    window.alert("made it here");
    var login = document.forms["login"];
    var user = login["username"].value;
    var pass = login["password"].value;

    if(user == null || user == "")
    {
        window.alert("user");
        return false;
    }  

    return false;
}

我确定我错过了一些愚蠢的东西,所以在我提交之前,我仔细检查了函数名称,看看我是否收到任何 javascript 错误,但结果都不是问题。有人看到我的错误吗?

如果用户名或密码为空或为空,我不希望 PHP 运行或将表单提交给自身。

编辑添加了完整的 html 页面减去 PHP 功能。还注意到由于某种原因我的 javascript 链接没有“链接”,而是我可以直接在标题中查看它的内容,就像它通过检查元素或萤火虫嵌入一样。这可能是问题的根源,但不确定原因。

编辑添加 doctype 只是以防万一,但仍然没有帮助。它会自动将我的 javascript 嵌入到我的页面中,并像往常一样将其放入 CDATA 中,而不是实际链接它。它在 IE、Firefox 和 Chrome 中执行此操作...

如果有人认为我的 PHP 可能与它有关,我可以发布它,但我看不出服务器端代码如何在不发布的情况下与客户端代码交互。

4

2 回答 2

2

您的代码中有一些小错误。首先,输入没有称为“文本”的属性,我相信您错过了它:) 尝试先验证它们。在此处查看输入可能具有的属性。其次,这个jsfiddle示例在 Chrome 和 FF 中正常工作。由于我使用的是 Ubuntu,因此我无法在 IE 中进行测试。

在我更正了表单属性后,jsfiddle 中的示例开始工作。我不确定它是否与此有关,但显然这似乎是我对您的代码不起作用的唯一合乎逻辑的解释。

于 2011-12-04T10:54:10.487 回答
1

您的代码运行良好。尝试在另一个 Web 浏览器中运行它。您在浏览器上安装的扩展程序之一可能会导致 JS 错误(在 Chrome 上安装 Google Dictionary 会给我带来问题)。

于 2011-12-04T08:58:05.270 回答