2014-04-04 5 views
0

그래서 사용자가 PDF 파일을 다운로드 할 수 있도록 암호를 입력해야하는 텍스트 필드가 있습니다. 암호가 맞으면 사용자를 PDF 파일로 리디렉션합니다. 패스가 잘못되면 사용자가 틀린 페이지 (wrong.html)로 리디렉션됩니다.Enter 키를 누를 때 페이지가 리디렉션되지 않습니다.

모두 정상적으로 작동합니다. 유일한 문제는 Enter 키를 누를 때 페이지를 리디렉션하지 않는 것입니다. 제출 단추를 클릭 할 때만 작동합니다.

해결 방법이 있습니까?

감사합니다.

입력 텍스트 필드와 전송 버튼

<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> 

자바 스크립트

<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

방금 ​​테스트했지만 작동하지 않았습니다. 방금 뭔가 알아 챘습니다. 아무 것도 입력하지 않으면 url_path.html에 대한 URL이 12345로 변경됩니다. pass = 12345 – Tiago

+0

이것은 양식이 제출되었음을 의미합니다. get 메소드의 경우 url의 끝에 form 매개 변수가 추가됩니다. 이를 방지하려면 form 태그 안에 method = POST를 사용하십시오. –

+0

죄송합니다. 정확히 어디서 method = POST를 입력해야하는지 알려주세요. 나는 조금 잃었습니다 – Tiago