2011-12-04 105 views
1

我不確定我的錯誤是否來自通過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可能與它有關我可以發佈它,但我沒有看到服務器端代碼如何不與客戶端代碼交互沒有被張貼。

+0

正如ajreal所言,問題在於你的函數永遠不會返回「true」。在你的onSubmit函數中總是使用分號也是很好的做法:'「return CheckLogin();」' – paulsm4

+0

我將完全相同的代碼複製到本地.html文件並且它可以工作(稱爲函數並停止提交)。它必須是你的一些PHP變種,它實際上是打破了HTML輸出的格式。你能準確地發佈服務器迴應什麼嗎? –

+0

@ paulsm4我希望表單「不提交」,以便我知道它至少會觸發我的功能。 '@ JimJose'服務器從不回顯任何事情,它只是檢查用戶名和數據庫,並確保用戶名/密碼不是空字段。如果其中任何一個爲空,即上述代碼的「$ log == false」部分發揮作用,並且它顯示「Login Unsuccessful」 –

回答

2

你的代碼有一些小錯誤。首先沒有任何屬性稱爲「文本」的輸入,我相信你錯過了它:)嘗試先驗證它們。 Check here以查看輸入可能需要的屬性。其次,這個jsfiddle示例在Chrome和FF中正常運行。自從我使用Ubuntu以來,我無法在IE中測試。

我更正了表單屬性後,jsfiddle中的示例開始工作。我不確定它是否與此有關,但顯然這似乎是我對你的代碼無法正常工作的唯一合理解釋。

+0

Lawl ...哇...你說得對。一旦我改變文字值,它開始工作。我甚至不知道xD!謝謝! –

+0

不客氣:) –

1

您的代碼運行良好。嘗試在另一個Web瀏覽器中運行它。您在瀏覽器上安裝的其中一個擴展程序可能會導致JS錯誤(因爲Chrome上的Google Dictionary對我造成了問題)。

+0

我嘗試在Chrome瀏覽器上,但仍然無法正常工作。這個腳本正在做一些我從未見過的事情。它不是引用外部文件,而是將其「嵌入」到標題中。如果我檢查元素或螢火蟲並打開標題,我也可以打開javascript標記並查看它,而不是點擊鏈接。這可能是我的問題的根源,但我不知道爲什麼這樣做。我認爲這是一個瀏覽器更新 –

+0

@Howdy_McGee這很正常,同時使用Firebug和Chrome檢查器,我可以擴展'

  • 11. window.location.href不工作在窗體上onsubmit
  • 12. 窗體onsubmit不能正常工作
  • 13. JavaScript不工作在UIWebview的按鈕onsubmit作爲Safari瀏覽器正常工作?
  • 14. onsubmit()不起作用
  • 15. Javascript驗證不起作用(onSubmit)
  • 16. 不工作:javascript上的<form onsubmit =「alert(event.shiftKey)」>>
  • 17. 表單onSubmit與Javascript不能正常工作在IE和Firefox
  • 18. JavaScript函數不爲的onsubmit IE工作......讓在Firefox
  • 19. JavaScript驗證與onsubmit函數不工作在IE8和IE7
  • 20. 陣營教程:CommentForm的onsubmit不工作
  • 21. Safari jquery onSubmit不能正常工作
  • 22. 的onsubmit驗證選項igeditor不工作
  • 23. onSubmit不能在表格上工作
  • 24. 的OnSubmit Safari瀏覽器不工作
  • 25. Onsubmit javascript
  • 26. Javascript onsubmit not running
  • 27. Javascript onsubmit clearcontent not working
  • 28. JavaScript中,的onsubmit
  • 29. OnSubmit無法在IE 8中工作
  • 30. Javascript onSubmit not returned false