2014-04-04 57 views
0

所以我有一個文本字段,用戶必須輸入密碼才能下載PDF文件。如果密碼正確,則會將用戶重定向到PDF文件url,如果通行證錯誤,則會將用戶重定向到另一個稱爲不正確(incorrect.html)的頁面。按回車鍵時頁面不重定向

一切工作正常。唯一的問題是當你按回車鍵時,它不會重定向頁面。它只在點擊提交按鈕時才起作用。

有沒有辦法解決這個問題?

非常感謝!

輸入文本字段並提交按鈕

<form name="login"> 
<input class="gen-label" type="text" name="pass" size="17" onKeyDown="if(event.keyCode==13) event.keyCode=9;"> 
<input class="button submit" type="button" value="Submit" onClick="TheLogin(this.form)"> 
</form> 

的Javascript

<script> 
function TheLogin() { 
var password = 'Pass1'; 
if (this.document.login.pass.value == password) { 
    top.location.href="file_to_download.pdf"; 
} 
else { 
    location.href="incorrect.html"; 
    } 
} 
</script> 
+1

'

+0

這根本不是很安全。您是以純文本形式在源代碼中存儲密碼的?您應該將表單發佈到服務器端腳本(例如PHP文件或類似文件),並在該處比較密碼,並在腳本執行服務器端重定向至文檔(如果密碼正確的話)。 – HaukurHaf

回答

1

<input type="submit"觸發的形式提交輸入,按鍵不會。

另一件事是更改else代碼以顯示下面的重定向。

<input class="gen-label" type="text" name="pass" size="17" onKeyDown="if(event.keyCode==13) event.keyCode=9;"> 
<input class="button submit" type="submit" value="Submit" onClick="TheLogin(this.form)"> 
</form><script> 
function TheLogin() { 
var password = 'Pass1'; 
if (this.document.login.pass.value == password) { 
    top.location.href="file_to_download.pdf"; 
} 
else { 
    window.location="incorrect.html"; 
    } 
} 
+0

剛剛測試過,但沒有奏效。我剛剛注意到了一些事情:當你輸入任何東西時,讓我們說12345 url變成了url_path.html?pass = 12345 – Tiago

+0

這意味着表單被提交。在get方法的情況下,表單參數會附加在url的末尾。爲了避免這種情況,在表單標籤中使用method = POST。 –

+0

對不起,你能告訴我究竟應該在哪裏輸入method = POST。我有點迷路 – Tiago