2012-01-05 4 views
1

어떤 이유로이 코드는 입력란이 비 었는지 여부에 관계없이 항상 education.php로 리디렉션됩니다. 필드에 값이 있는지 확인하려고하지만 어떤 이유로 리디렉션을 계속하지만 데이터베이스에 아무 것도 쓰지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다.자바 스크립트 양식 유효성 검사가 여전히 리디렉션

<body> 
<form action="education.php" method="post" onsubmit="return validate_fields()"> 
<div style="text-align: right"> 
<ul> 
First Name: <input id="first_name" name="first_name" size=25/> <br> 
Last Name: <input id="last_name" name="last_name" size=25/> <br> 
Email: <input id="emailaddress" name="emailaddress" size=25/> <br> 
Password: <input id="user_password" name="user_password" type="password" size=25/> <br> 
<center><input type="submit" name="submit" id="submit" value="Register Now"/></center> 
</ul> 
</div> 
</form> 
<script type="text/javascript"> 
function validate_fields() 
{ 
    var first_name = document.getElementByID("first_name").value; 
    var last_name = document.getElementById("last_name").value; 
    alert(""+first_name+" "+last_name); 
    if (first_name.length < 1 || last_name.length < 1) 
    { 
     alert("Please fill in your name."); 
     return false; 
    } 
    var email = document.getElementById("emailaddress").value; 
    if (email.length < 1) 
    { 
     alert("Please fill in your email address."); 
     return false; 
    } 
    var password = document.getElementById("password").value; 
    if (email.length < 1) 
    { 
     alert("Please put in a password."); 
     return false; 
    } 
    alert(first_name+" "+last_name+" "+email); 
    return false; //was true, changed to see if still redirects. 
} 
</script> 
</body> 
+0

성/이름과 이메일로 최종 '경고'를 받고 있습니까? 또는 사전 경보 (나쁜 이름, 나쁜 전자 메일, 잘못된 암호)가 있습니까? – OnlineCop

+0

경고가 표시되지 않습니다. –

+0

첫 번째조차도 아니십니까? –

답변

5

함수의 첫 번째 줄에 오타가있어 false (또는 true)를 반환하지 않으면 전혀 실행되지 않습니다. 이것은 경고를받지 못하는 이유와 양식 제출이 앞으로 나아갈 이유를 설명합니다.

var first_name = document.getElementByID("first_name").value; 
// you need a lowercase "d" here ------^ 

.getElementById()하지 .getElementByID()해야한다.

브라우저에 적합한 개발자 도구를 사용하면 쉽게 찾을 수 있습니다. Chrome에는이 도구가 내장되어 있습니다 (dev 툴을 가져 오기 위해 ctrl-shift-J를 누르기 만하면됩니다). 또는 FireFox를 FireFox 용으로 추가 할 수 있습니다. IE에는 여러 버전의 dev 툴바 옵션이 있습니다.

+0

이러한 오타 관련 질문을 제거하여 [스택 오버플로 정리 캠페인] (http://meta.stackexchange.com/q/167342/187073)이 있습니다. 정말 도움이 될 수 있습니다! 이 질문에 가까운 표를 던지면서 조금 피칭해도 될까요? – VisioN

2

당신은 여기에 오타가 있습니다

var first_name = document.getElementById("first_name").value; 

당신은 ById 수 sould ByID을 썼다!

관련 문제