2009-04-16 5 views
0

나는 현재 실행중인 컨테스트의 참가 양식에 자바 스크립트 양식 유효성 검사를 사용하고 있습니다. 인라인 CSS이므로 특정 조건을 충족시키지 않으면 "이메일 주소를 입력하십시오"또는 "유효한 이메일 주소처럼 보이지 않습니다"등의 메시지가 빨간색으로 표시됩니다.서버/로컬에서 자바 스크립트 양식 유효성 확인

스크립트 , 이는이 파일의 상단에 앉아는 다음과 같습니다

<script> 

    function checkForm() { 
name = document.getElementById("name").value; 
email = document.getElementById("email").value; 
terms = document.getElementById("terms").value; 


    if (name == "") { 
    hideAllErrors(); 
document.getElementById("nameError").style.display = "inline"; 
document.getElementById("name").select(); 
document.getElementById("name").focus(); 
    return false; 
    } else if (email == "") { 
hideAllErrors(); 
document.getElementById("emailError").style.display = "inline"; 
document.getElementById("email").select(); 
document.getElementById("email").focus(); 
    return false; 
    } 

else if (!check_email(document.getElementById("email").value)) { 
hideAllErrors(); 
document.getElementById("emailError2").style.display = "inline"; 
document.getElementById("email").select(); 
document.getElementById("email").focus(); 
    return false; 
    } 

else if (!document.form1.terms.checked){ 
hideAllErrors(); 
document.getElementById("termsError").style.display = "inline"; 
document.getElementById("terms").select(); 
document.getElementById("terms").focus(); 
    return false; 
    } 

    return true; 
    } 

function check_email(e) { 
ok = "1234567890qwertyuiop[][email protected]_QWERTYUIOPASDFGHJKLZXCVBNM"; 

for(i=0; i < e.length ;i++){ 
if(ok.indexOf(e.charAt(i))<0){ 
return (false); 
} 
} 

if (document.images) { 
re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/; 
re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; 
if (!e.match(re) && e.match(re_two)) { 
return (-1);   
} 

} 

} 
function hideAllErrors() { 
document.getElementById("nameError").style.display = "none" 
document.getElementById("emailError").style.display = "none" 
document.getElementById("commentError").style.display = "none" 
document.getElementById("termsError").style.display = "none" 

    } 

이메일과 이름 확인 작업을 잘,이 같은 모습을 작동하지 않습니다 양식의 일부 :

<form onSubmit="return checkForm();" method="get" action="sweepstakes-results.php" 
<input type=checkbox name=terms id=terms ><br></p> 
<div class=error id=termsError>Required: Please check the checkbox<br></div> 
<p><input type=submit value=Send style="margin-left: 50px"> </p> 
</form> 

"이용 약관"확인란은 로컬 컴퓨터에 파일이있는 경우에만 작동하며 업로드 할 때 jus 확인되지 않은 경우에도 양식을 제출합니다. 자바 스크립트가 브라우저에서 실행되지 않습니까? 파일의 위치가 어떻게 달라질 수 있습니까?

답변

0

양식은 이름이없는, 그래서 다음 코드는 작동하지 않습니다

else if (!document.form1.terms.checked){ 

이미 체크 아웃의 DOM 객체를 검색하고 있기 때문에, 다음을 수행하십시오.

terms = document.getElementById("terms").value; 

에 :

terms = document.getElementById("terms"); 

그리고 그와 코드 경우 다른 사람이 대체 : 줄을 변경

else if (!terms.checked){ 
+0

당신은 옳았다! 나는 네가 말했듯이 새로운 문제가있다. 이제는 유효성 검사를 통과 할 수 없습니다. 비록 내가 상자를 체크하더라도 그것은 틀린 것을 반환한다. –

+0

또한 변경 한 경우 로컬 일 때 더 이상 작동하지 않습니다. –

+0

죄송합니다. 코드 오류가 발생했습니다. –

관련 문제