2010-04-18 7 views
0

자바 스크립트가 제대로 동작하지 않습니다. 그것은 간단한 사전 vailidation 양식이며 나는 스크립트가 작동하도록 할 수 없습니다. 각 필드의 유효성을 검사하기로되어 있지만 첫 번째 이름의 유효성을 검사 할 수는 없습니다. 코드가 혼란스럽지 않도록 다른 쓰레기를 모두 제거했습니다. 메모장에 붙여 넣기해야합니다. 약간의 도움 당신은 이름이라는 두 변수, 문제가 될 수도 선포자바 스크립트 문제

<?xml version="1.0" encoding="iso-8859-1"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0   Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 


<script language="JavaScript" type="text/javascript">  
<!--  
function validateForm(theForm) {  
var name = theForm.firstname.value; 
var name = theForm.lastname.value;  
var email = theForm.email.value;  
if (name == "") {  
    alert("Please fill in your First Name.");  
    theForm.firstname.focus();  
    return false;  
} 
if (name == "") {  
    alert("Please fill in your Last Name.");  
    theForm.lastname.focus();  
    return false;  
} 

if (email == "") {  
    alert("Please fill in your email address.");  
    theForm.email.focus();  
    return false;  
}  
return true;  
}  
//--> 

</script> 


if (!theForm.myCheckbox1.checked {  
alert("Please check the honor box.");  
return false;  
} 


</head> 
<body> 
</script>  



<fieldset> 
<legend>Fun in the Sun With JavaScript</legend> 
<ul> 


<form action="blah.cgi" method="post"  
    onSubmit="return validateForm(this);">  
First name: <input type="text" name="firstname"> <font color="#FF0000" size="1"  face="Arial, Helvetica, sans-serif"><strong>*</strong></font> <br><br> 
Last name: <input type="text" name="lastname"> <font color="#FF0000" size="1"  face="Arial, Helvetica, sans-serif"><strong>*</strong></font> <br><br> 
Email address: <input type="text" name="email"> <font color="#FF0000" size="1" face="Arial, Helvetica, sans-serif"><strong>*</strong></font> <br><br> 
Phone Number: <input type="text" name="phone"><br><br>  
<input type="submit" name="submit" value="Submit">  
</form> 



<input type="checkbox" name="myCheckbox" value="someValue"><font color="#FF0000" size="1" face="Arial, Helvetica, sans-serif"><strong>*</strong></font> <P>By checking this Box you are confirming the data is accurate</p> 


<p>(* indicates a required field)</p> 





</body> 
</html> 
+0

'name' 변수를 두 번 선언하고 설정했기 때문에 단순히 그 것이 아니라고 확신합니까? – Thomas

+0

코드에 이 필요하지 않습니다. 그들은 완전히 불필요합니다. 또한 이것이 실제 사용 된 코드를 충실히 재현 한 것이라면 오류가 있습니다.

0

에 대한 @ psuphish05 제안처럼 검증이 경우 블록에 실패 I합니다. 이로 인해 메소드가 모든 오류를 얻기 전에 조기에 종료됩니다.

... return false; //Will cause premature exit } 

isValid 부울 변수를 메서드에 유지하고 각 if 블록이 아닌 끝에이를 반환 할 수 있습니다. 검증 실패시 if 블록에서 각각의 isValid를 false로 설정하십시오. 이렇게하면 모든 유효성 검사를 통과하고 필드가 실패하고 사용자의 방법에 대한 단일 종료 점을 제공하면 사용자에게 경고를 표시 할 수 있습니다.

var isValid = true; 

... isValid = false; //When validation fails. 

return isValid; //At the end of your method. 

희망 사항은 약간의 통찰력을 제공합니다.

+0

감사합니다. 유효성 검사에서 귀하가 의미하는 바를 봅니다. 저는 JavaScript에 익숙하지 만 여러분이 말하는 것에 대해 이해하고 있습니다. – Michael

+0

전혀 문제가 없습니다. 우리가 도울 수있어서 기뻐. – psuphish05