2012-10-12 3 views
2

여기에 진짜 문제가 있습니다. 이 주위에 내 머리를 감쌀 수 없어!양식 제출시 각 '필수'입력란을 반복하십시오.

내가 원하는 것은 전자 메일 주소의 유효성을 검사 한 후 양식을 제출 한 다음 '필수'클래스로 레이블을 지정한 각 입력을 제출하는 것입니다. 난 정말 나에게 사람들을 통해 어떻게 루프를 보여주는 사람을 평가하고 각자가 채워 경우에만 제출합니다.

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.button').click(function() { 
      var email = $("input.email").val();   
      var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; 
      if(filter.test(email)) { 
       $('input.required').each(function() { 
        var name = $("input.required").val(); 
        if(name != "") { 
         $('#form').submit(); 
        } else { 
         $('#error').show(); 
         return false; 
        } 
       }); 
      } 
      else { 
       $('#error').show(); 
       return false; 
      } 
     }); 
    }); 
</script> 
+0

왜 유효성 검사기 jquery 플러그인을 사용하지 않습니까? http://bassistance.de/jquery-plugins/jquery-plugin-validation/ –

답변

8

당신은 비어있는 요소 만 필터링 할 수 .filter()을 사용할 수 있으며, 다음을 확인 할 필터와 일치하는 요소의 수입니다. 필터와 일치하는 입력이 있으면 오류가있어서 게시해서는 안됩니다. 다음과 같은 것 :

var emptyFields = $('input.required').filter(function() { 
    return $(this).val() === ""; 
}).length; 

if (emptyFields === 0) { 
    $('#form').submit(); 
} else { 
    $('#error').show(); 
    return false; 
} 
+0

Brilliant! 고마워, 친구! – doublenit

+0

@ user1741957 내 기쁨! –

+0

@doublenit 답안의 왼쪽에있는 체크 표시를 클릭하여 "수락"한 것으로 가장 유용한 답변을 표시 할 수 있습니다. 단 하나의 답을 수락 할 수 있습니다. 그러면 미래에이 질문을 읽을 수있는 다른 사람들이 표시됩니다.이 답변은 귀하에게 가장 유용합니다. 응답을 수락하면 미래에 질문을 올릴 때 수락 률이 표시되므로 사람들을 장래성있게 도와줍니다. –

3
var isValid = true; // Set the isValid to flag try initially 

    $('input.required').each(function() { // Loop thru all the elements 
     var name = $("input.required").val(); 
     if(name != "") { // If not empty do nothing 

     } else {   
      isValid = false; // If one loop is empty set the isValid flag to false 
      return false; // Break out of .each loop 
     } 
    }); 

    if(isValid){ // If valid submit form else show error 
     $('#form').submit(); 
    } 
    else{ 
     $('#error').show(); 
    return false; 
}