我不确定我的错误是否来自于通过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运行,或者如果用户名或密码为空或者为null,则表单要提交给自己。
编辑添加完整的html页面减去PHP功能。还注意到由于某种原因,我的javascript链接没有“链接”,而是我可以直接在标题中查看它的内容,就像它是通过inspect元素或firebug嵌入的一样。这可能是问题的根源,但不确定原因。
编辑刚刚添加了doctype,但仍无法提供帮助。它会自动将我的javascript嵌入到我的页面中,并将其放入CDATA中,就像您通常不会实际链接它一样。它在IE,Firefox和&amp;铬...
如果有人认为我的PHP可能与它有关,我可以发布它,但我不知道服务器端代码如何与客户端代码交互而不发布。
答案 0 :(得分:2)
您的代码中存在一些小错误。首先,输入没有称为“文本”的属性,我相信你错过了它:)尝试先验证它们。 Check here查看输入可能采用的属性。其次,这个jsfiddle示例在Chrome和FF中正常运行。因为我使用Ubuntu,所以无法在IE中测试。
在我更正了表单属性后,jsfiddle中的示例开始工作。我不确定它与此有什么关系,但显然这对我来说似乎是唯一合乎逻辑的解释,因为你的代码不起作用。
答案 1 :(得分:1)
您的代码运行正常。尝试在其他Web浏览器中运行它。您在浏览器上安装的扩展程序之一可能导致JS错误(Chrome上的Google Dictionary导致了我的问题)。