我不確定我的錯誤是否來自通過PHP將表單提交給自己,但不管返回的是什麼內容,它都不會觸及我的函數並提交。我不確定我在這裏錯過了什麼。這是我的形式Javascript onsubmit =「」不工作
<!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鏈接不'鏈接',而是我可以直接在標題中查看它的內容,就像它通過檢查元素或螢火蟲嵌入。這可能是問題的根源,但不知道爲什麼。
編輯添加文檔只是incase,但仍然沒有幫助。它會自動將我的JavaScript嵌入到我的頁面中,並像通常那樣將它放入CDATA中,而不是實際將其鏈接到CDATA中。它在IE瀏覽器,火狐& Chrome ...
如果有人認爲我的PHP可能與它有關我可以發佈它,但我沒有看到服務器端代碼如何不與客戶端代碼交互沒有被張貼。
正如ajreal所言,問題在於你的函數永遠不會返回「true」。在你的onSubmit函數中總是使用分號也是很好的做法:'「return CheckLogin();」' – paulsm4
我將完全相同的代碼複製到本地.html文件並且它可以工作(稱爲函數並停止提交)。它必須是你的一些PHP變種,它實際上是打破了HTML輸出的格式。你能準確地發佈服務器迴應什麼嗎? –
@ paulsm4我希望表單「不提交」,以便我知道它至少會觸發我的功能。 '@ JimJose'服務器從不回顯任何事情,它只是檢查用戶名和數據庫,並確保用戶名/密碼不是空字段。如果其中任何一個爲空,即上述代碼的「$ log == false」部分發揮作用,並且它顯示「Login Unsuccessful」 –