2014-11-23 5 views
0

Не могу получить эту форму, чтобы даже выполнить проверку javascript. Я попытался изменить onclick на onsubmit в форме, но havent когда-либо получил его для запуска скрипта. Извините, если это очевидная ошибка, но я уже некоторое время искал интернет. СпасибоВалидация формы Javascript не работает

<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' недопустим, также нет метода' .text' для объектов RegExp, вы имеете в виду '.test'. Вы должны были получить сообщения об ошибках в консоли разработчика вашего браузера –

ответ

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 - это должно быть getElementById как должно быть только один элемент с этим идентификатором
  • Сообщение текстовое поле имеет id of 'messsage' not 'message'
  • Как сказал Патрик в h это комментарий, который должен быть методом тестирования, а не текстовым.
Смежные вопросы