2014-11-23 9 views
0

자바 스크립트 유효성 검사를 실행하려면이 양식을 가져 오십시오. 나는 onclick을 onsubmit 형식으로 변경하려고 시도했지만 havent는 스크립트를 실행하기 위해 그것을 얻었다. 죄송합니다. 이것은 명백한 오류이지만 잠시 동안 인터넷 검색을 해본 적이 있습니다. 감사합니다자바 스크립트 양식 유효성 검사가 실행되지 않습니다.

<html> 
    <head> 
     <title>Email Form Page</title> 
     <link href="mycss.css" rel="stylesheet"> 
     <script type="text/javascript"> 
      function validator(){ 
       var firstname = document.getElementsById('fname').value; 
       var lastname = document.getElementsById('lname').value; 
       var email = document.getElementsById('email').value; 
       var subject = document.getElementsById('subject').value; 
       var message = document.getElementsById('message').value; 
       var errors = ""; 
       regex1 = /^[a-z]+$/; 
       regex2 = /^\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,3}$/; 
       // Checks to see if all fields have been filled in 
       if (firstname == ""){ 
        errors += 'First name field is empty \n'; 
        } 
       if (lastname == ""){ 
        errors += 'Last name field is empty \n'; 
        }  
       if (email == ""){ 
        errors += 'Your Email field is empty \n'; 
        } 
       if (subject == ""){ 
        errors += 'Subject field is empty \n'; 
        }      
       if (message == ""){ 
        errors += 'Message field is empty \n'; 
        } 
       // Checks if first name contains only letters  
       if (regex1.text(firstname)) == false { 
        errors += 'First name can not contain numbers \n'; 
       } 
       // Checks if last name contains only leters 
       if (regex1.text(lastname)) == false { 
        errors += 'Last name can not contain numbers \n'; 
       } 
       // checks to see if email is valid 
       if (regex2.text(email) == true) { 
        errors += 'Email was not valid \n'; 
       } 

       //alerts errors and kills form 
       if (errors != ""){ 
        alert(errors); 
        return false; 
       } 

     </script> 
    </head> 

    <body> 
     <h1> Send me an Email </h1> 
     <div class= "container"> 
     <form name="emailform" method="post"> 
      First Name: <input type='text' name ='firstname' id="fname"> <br> 
      Last Name: <input type='text' name ='lastname' id="lname"> <br> 
      Your Email: <input type='text' name ='email' id ="email"> <br> 
      Subject: <input type='text' name='subject' id ="subject"> <br> 
      Message: <textarea rows='6' cols='30' name='message' id="messsage"> </textarea> <br> 
      <input type='submit' value ='Send' name='submit' onclick= "validator()"> 
     </form> 
     </div> 
    </body> 
</html> 
+1

'if (regex1.text (firstname)) == false'가 유효하지 않습니다. 또한 RegExp 객체에는'.text' 메소드가 없으므로'.test'를 의미합니다. 브라우저의 Developer 's Tools 콘솔에 오류 메시지가 표시되어야합니다. –

답변

0

일부 if 문에는 구문 오류가 있습니다.

if (regex1.text(firstname)) == false { 
        errors += 'First name can not contain numbers \n'; 
       } 

if (regex1.text(firstname) == false) { 
        errors += 'First name can not contain numbers \n'; 
       } 

일부 다른 오류 document.getElementsById를 사용

  • 이어야한다 - 단지
  • 메시지 텍스트 영역이있다이 ID를 가진 하나 개의 요소해야로서이가에서 getElementById한다 이드의 '메시지'는 '메시지가 아님'
  • 패트릭은 h 테스트 텍스트가 아닌 메소드가 있어야한다는 의견입니다.
관련 문제