2013-06-25 3 views
0

jquery 유효성 검사 플러그인을 사용하여 유효성을 검사하려는 양식이 있습니다. 문제는 유효성 확인을 위해 제출하기 전에 양식 값의 사전 처리를해야한다는 것입니다.복잡한 jquery 유효성 검사

예를 들어 사용자가 양식에 정의한 시작 시간이 지금보다 짧을 수 있습니다. 시작 시간을 얻으려면 값을 가져 오는 데 필요한 두 가지 구성 요소가 있습니다.

var defaults = jQuery.extend(validationPluginDefaults, { 
       ignore:'', 
       rules: { 
        meetingName:{ 
         mtgNameRequired:true 
        }, 
        e2: { 
         startTimeInPast:false 
         startTime:mtgStart 
        } 
       } 
      }); 

      jQuery("form[ id='mtg_form' ]").validate(defaults); 

질문입니다, 내가 만들 수행

var mtgStart = new Date(startDate.getFullYear() + '-' + (startDate.getMonth() + 1) + '-' + startDate.getDate() + ' ' + sTime); 

내가 이런 검증에이 PARAMS (startTime을)를 전달할 수 있다는 읽고 : 여기

내가 현재 해당 캡처 방법 여기서 "mtgStart"변수는 무엇입니까?

과 같을 것이다 내 검증 방법 :

jQuery.validator.addMethod("lowerInt", function(value, element, params) { 
    var now = new Date(); 
    var mtgStart = params[0]: 

    return now < mtgStart; 
} 

UPDATE : 지금 제출 버튼의 클릭에 대한 유효성 검사를 트리거

; 문제 없어. 이제 문제는 jquery 유효성 검사 플러그인에 인수를 전달하는 방법입니다. 나는 (내가 읽은 것처럼) 자바 스크립트 배열을 사용하여 시도했지만 액세스 할 수 없다. 내 코드는 다음과 같습니다.

jQuery.validator.addMethod("createMtgInPast", function(val, el, params){ 
var now = new Date(); 
var mtgStart = params[0]; 

var nowTime = now.getTime(); 
var setTime = mtgStart.getTime(); 

return nowTime < setTime; 

}, "과거에는 회의를 만들 수 없습니다."); 버튼 제출에 대한

그리고 여기 내 클릭 핸들러이다 :

$('#submit_btn').click(function(data) 
       { 
        // Concatenate the start/end dates and their times.    
        var newStart = new Date(startDate.getFullYear() + '-' + (startDate.getMonth() + 1) + '-' + startDate.getDate() + ' ' + sTime); 
        var newEnd = new Date(endDate.getFullYear() + '-' + (endDate.getMonth() + 1) + '-' + endDate.getDate() + ' ' + eTime); 

        var defaults = jQuery.extend(validationPluginDefaults, { 
         rules: { 
          meetingName:{ 
           mtgNameRequired:true 
          }, 
          e2: { 
           createMtgInPast: true, 
           data:['TEST'] 
          } 
         } 
        }); 
        $("#mtg_form").validate(defaults); 

답변

0

가있어, 여기 내 업데이트 된 코드입니다 :

var defaults = jQuery.extend(validationPluginDefaults, { 
         rules: { 
          meetingName:{ 
           mtgNameRequired:true 
          }, 
          e2: { 
           createMtgInPast: [newStart] 
          } 
         } 
        }); 

나는 새로운 방법을 만들고 거기에 인수를 전달했다; 잘못된. args를 검증 메소드에 직접 전달하십시오.