2015-05-24 3 views
0

Существует форма, в которой при отправке открывается новая страница, только если проверка правильна. Тем не менее, окно открывается в каждом случае, и я предполагаю, что проверка не работает, хотя он должен ... Буду признателен, если бы вы могли указать мне в правильном направлении.Сценарий проверки подлинности формы перед отправкой

<!DOCTYPE html> 
<html> 

<head> 
    <script type="text/javascript"> 
     function overallcheck() { 
      if (!checkjob() || !checkEmail() || !Checkname()) { 
       writeTo("problemArea", "Error messages area"); 
       return false; 
      } 
      if (!Checkname()) { 
       writeTo("problemArea", "Please inser a valid name"); 
       return false; 
      } 
      if (!checkEmail()) { 
       writeTo("problemArea", "Please inser a valid email"); 
       return false; 
      } 
      if (!checkjob()) { 
       writeTo("problemArea", "Please inser your job"); 
       return false; 
      } 
      elsereturn true; 
     } 

     function Checkname() { 
      clearElement("problemArea"); 
      var fullname = document.forms['form'].fullname.value; 
      if (fullname.length == 0 || !isNaN(fullname)) 
       return false; 
     } 

     function checkEmail() { 
      clearElement("problemArea"); 
      var mail = document.forms['form'].Email.value; 
      if (mail == '' || mail.indexOf('@') == -1 || mail.indexOf('.') == -1) 
       return false; 
     } 
     } 

     function checkjob() { 
      clearElement("problemArea"); 
      var i; 
      for (i = 0; i < 4; i++) { 
       if (document.forms['form'].job[i].checked) { 
        return true; 
       } 
      } 
      return false; 
     } 

     //--> 
    </script> 

</head> 

<body> 

    <form onsubmit=("return overallcheck();") action="another.html" id=form target="_blank" method="GET"> 
     <table> 

      <button type="submit" onclick="">submit</button> 

    </form> 
</body> 

</html> 
+1

Можете ли вы объяснить 'onsubmit = (" return totalcheck(); ")' и 'elsereturn true;'? – NewToJS

+0

Общая проверка проверяет все формы, если форма заполнена правильно, тогда она возвращает true. Новая страница должна открываться только в том случае, если overacheck истинна, в противном случае появится сообщение об ошибке – Mayday

+0

Я пробовал много способов, я видел онлайн. Возвращение fuction() является одним из них. Логика, однако, состоит в том, чтобы вызвать общий контроль перед действием. – Mayday

ответ

0

Ну ... Это недопустимый JavaScript. Как отметил NewToJS в своем комментарии, elsereturn true; не подходит.

Вы должны использовать:

else { 
    return true; 
} 

Кроме того, это (onsubmit=("return overallcheck();")) не будет работать. Вам нужно сделать это:

<form onsubmit="return overallcheck();" action="another.html" id="form" target="_blank" method="GET"> 
+0

Спасибо! Я сделал это для слова ... но все равно новая страница открывается в любом случае – Mayday

+0

@MayDay использует 'event.preventDefault();', чтобы остановить отправку формы. – NewToJS

Смежные вопросы