2011-09-17 2 views
0

jQuery 또는 bacic JS와는별로 좋지 않지만 매우 멋진 양식을 통해 해킹했습니다.하지만 도움이 필요한 사람이 필요합니다. 내가 가지고있는 마지막 문제.jquery는 플러그인을 무시하고 무시합니다 (JavaScript 및 jquery 초보자)

$(document).ready(function(){ 

var ignoreClasses=""; 

//this hides or shows the specific sections base ond the relationship select 
$("#relationship").change(function() { 
    switch ($(this).val()){ 

     case 'prospective-customer': 
      $(".interest_all").hide(); 
      $("#interest_1").show(); 
      ignoreClasses = '.s2,.s4,.s5'; 
     break; 
     case 'current-cutomer': 
      $(".interest_all").hide(); 
      $("#interest_2").show(); 
      ignoreClasses = '.s1,.s4,.s5'; 
     break; 
     case 'prospective-partner': 
      $(".interest_all").hide();    
      $("#interest_3").show(); 
     break; 
     case 'applicant': 
      $(".interest_all").hide();   
      $("#interest_4").show(); 
      ignoreClasses = '.s1,.s2,.s5'; 
     break; 
     case 'vendor':   
      $(".interest_all").hide();   
      $("#interest_5").show(); 
      ignoreClasses = '.s1,.s2,.s4'; 
     break; 

     default: 
      $(".interest_all").hide(); 
     } 
}); 

// field validation 
$("#leadform").validate({ 

    //I need to get the ignore class in here 
    //like ignore: '.s2,.s4,.s5' 


}); 

});

은 무시로 값을 얻기 위해에 작동 .validate에의 var에 ignoreClasses을 얻을 수있는 방법()

정말 감사합니다


조나단이있다. 그러나 문제가 있습니다. 사용자가 # 관계 선택 상자를 변경하면 전체 양식 유효성 검사가 작동합니다. 사용자가 이름을 완료하면 클릭 제출 양식이 전혀 유효하지 않습니다. 당신이 JSON 구문을 사용 할 수 있도록

+0

** 무엇이 ** .validate() **에 var를 가져 오는 것을 의미합니까? – Blender

답변

0

$("#leadform").validate({ ignore: ignoreClasses});

당신은 validate method에 객체를 전달하고 있습니다.

더 나은 성능을 위해 jQuery 선택기를 캐시하는 것이 좋습니다 (이 경우에는별로 중요하지 않지만 좋은 방법입니다). 당신이 .validation()ignoreClasses 당신이 당신의 change 이벤트 리스너 내에서 지정한 실행하려면

http://jsfiddle.net/jondum/Tua6c/

0

, 당신은 이벤트 리스너 내에서 .validation() 메소드를 호출해야합니다. 그대로 .validate() 실행될 때 ignoreClasses 정의되지 않습니다.

$(document).ready(function() { 

    var ignoreClasses = ""; 

    var $interests_all = $(".interest_all"); 

    //this hides or shows the specific sections base ond the relationship select 
    $("#relationship").change(function() { 
     switch (this.value) { 

     case 'prospective-customer': 
      $interests_all.hide(); 
      $("#interest_1").show(); 
      ignoreClasses = '.s2,.s4,.s5'; 
      break; 
     case 'current-cutomer': 
      $interests_all.hide(); 
      $("#interest_2").show(); 
      ignoreClasses = '.s1,.s4,.s5'; 
      break; 
     case 'prospective-partner': 
      $interests_all.hide(); 
      $("#interest_3").show(); 
      break; 
     case 'applicant': 
      $interests_all.hide(); 
      $("#interest_4").show(); 
      ignoreClasses = '.s1,.s2,.s5'; 
      break; 
     case 'vendor': 
      $interests_all.hide(); 
      $("#interest_5").show(); 
      ignoreClasses = '.s1,.s2,.s4'; 
      break; 

     default: 
      $interests_all.hide(); 
     } 
     // field validation (now being called from within the change listener) 
     $("#leadform").validate({ 
      ignore: ignoreClasses 
     }); 
    }); 
}); 
+0

대단히 고맙습니다. 값을 무시해 주셔서 감사합니다. 그러나 문제가 있습니다. 사용자가 # 관계 선택 상자를 변경하면 전체 양식 유효성 검사가 작동합니다. 사용자가 이름을 완료하면 클릭 제출 양식이 전혀 유효하지 않습니다. – Marc

+0

그러면 당신이해야 할 일은 전역 변수가되도록'$ (document) .ready()'의'ignoreClasses' _outside_를 선언하는 것입니다. 그런 다음 submitate 리스너를 사용하여 submitate 폼에'validate' 함수를 붙이십시오 :'$ ('form # leadform') submit (function() {validate}}; –

+0

당신은'ignoreClasses'를 그대로 둔 채로'window [ 'ignoreClasses'] = ""'처럼 선언 할 수도 있습니다. 그런 다음 제출 처리기에서 동일한 방식으로 참조 할 것입니다. –

관련 문제