-2

すべてのフィールドが必須であり、ユーザーが「条件に同意する」かどうかを確認し、電子メールが正しいかどうかも確認する必要があるフォームの検証を行っています。名前/電子メールなどを入力していない場合、このコードは応答を返しますが、この情報を入力すると、.alert が hide() されません。そして、規約と「有効なメール」チェックのチェックボックスに応答しません。「応答」がない場合、.alert も常に「非表示」にする必要があります。

このコードはどこで失敗しますか? 何かご意見は?

$("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)
}    
4

2 に答える 2

0

バリデータープラグインを使用しないのはなぜですか。

私はhttp://jqueryvalidation.org/を使用します

于 2013-08-22T10:50:35.407 に答える