2013-08-22 3 views
-2

Я делаю проверку формы, где должны быть обязательны все поля, а также проверить, согласны ли пользователи с условиями, а также проверить правильность адреса электронной почты. Он почти работает, этот код дает мне ответ, если я не ввел имя/e-mail и т. Д., Но если я введу эту информацию, он не скроет() .alert. И затем не отвечает на флажок для условий и проверки «действительной электронной почты». .alert также всегда должен быть «скрытым», если нет «ответа».Проверка формы, если/else с помощью JQuery

Где этот код не работает? Есть предположения?

$("form").submit(function (e) { 
e.preventDefault(); // This will prevent the form submission 

    var response = ""; 
    $('#submit-holder').find('input').each(function(){ 
     if ($(this).val() == '') { 
     response += ", " + $('label[for="' + this.id + '"]').html(); 
     empty_fields = true;  
     }  

     else if ($(this).val() == !'') { 
     empty_fields = false; 
      $('.alert').hide() 
     } 

     else if(empty_fields = true) { 
        $('.alert').addClass('alert-danger') 
        $('.alert').fadeIn()    
        $('.error_message').text(response.replace(", ", "You need to fill out: ")) 
        message = response.replace(", ", "You need to fill out: ") 
        response_message(message) 
     } 

     else if ($('[name="txtEmail"]').length !== 0) { 

      var email = $('[name="txtEmail"]').val(); 

      if(IsEmail(email)==false){ 
        message = "The e-mail address you've entered is invalid"; 
        response_message(message) 
         //return false; 
        } 
      } 

      else if($('#user_terms').not(":checked")){ 
      message = "You need to accept the terms and conditions to continue"; 
      response_message(message) 
       //return false; 

      } 

     }); 

if($('#user_terms').is(":checked") && !response) { 

    // Send the form 

} 


// Functions: 
function IsEmail(email) { 
    var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
    if(!regex.test(email)) { 
     return false; 
    }else{ 
     return true; 
    } 
    } 

function response_message(message) { 

    $('.alert').addClass('alert-danger') 
    $('.alert').fadeIn()    
    $('.error_message').text(message) 
}  
+0

еще если ($ (это) .val() == «») {- выглядит как виновника ... –

+2

Это выглядит так, как будто вам не хватает ряд конца строки с запятой; – RedEyedMonster

+0

Возможный дубликат [Форма JQuery не будет проверяться на успех] (http://stackoverflow.com/questions/18379864/jquery-form-wont-validate-to-success) – mplungjan

ответ

0

Почему вы не используете плагин проверки подлинности.

я использую http://jqueryvalidation.org/

+0

Больше комментария, чем ответа. –

+0

да я знаю, но я новичок здесь .. и у меня нет достаточных разрешений/репутации, чтобы комментировать ... извините :( –

+0

Это может быть хорошо, но я бы хотел, чтобы не было слишком много «плагинов» знать» – Kim

0

Привет этот код будет работать без ошибок, но я не уверен, что ваша логика верна.

$("form").submit(function (e) { 
e.preventDefault(); // This will prevent the form submission 

    var response = ""; 
    $('#submit-holder').find('input').each(function(){ 
     if ($(this).val() == '') { 
     response += ", " + $('label[for="' + this.id + '"]').html(); 
     empty_fields = true;  
     }  

     else if ($(this).val() != '') { 
     empty_fields = false; 
      $('.alert').hide(); 
     } 

     else if(empty_fields = true) { 
        $('.alert').addClass('alert-danger'); 
        $('.alert').fadeIn();   
        $('.error_message').text(response.replace(", ", "You need to fill out: ")); 
        message = response.replace(", ", "You need to fill out: "); 
        response_message(message); 
     } 

     else if ($('[name="txtEmail"]').length !== 0) { 

      var email = $('[name="txtEmail"]').val(); 

      if(IsEmail(email)==false){ 
        message = "The e-mail address you've entered is invalid"; 
        response_message(message); 
         //return false; 
        } 
      } 

      else if($('#user_terms').not(":checked")){ 
      message = "You need to accept the terms and conditions to continue"; 
      response_message(message); 
       //return false; 

      } 

     }); 

if($('#user_terms').is(":checked") && !response) { 

    // Send the form 

} 


// Functions: 
function IsEmail(email) { 
    var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
    if(!regex.test(email)) { 
     return false; 
    }else{ 
     return true; 
    } 
    } 

function response_message(message) { 

    $('.alert').addClass('alert-danger'); 
    $('.alert').fadeIn();   
    $('.error_message').text(message); 
} 
Смежные вопросы