2010-07-12 7 views
0

자,이 함수는 확인란에 적용된 변경 이벤트로 작성했습니다. 이제는 사용자 정의 유효성 검사기 메서드로 사용해야하므로 폼을 단계별로 실행하기 위해 "다음"을 누르면 실행됩니다. 나는 모든 것을 작동 시켰고 규칙의 문법을 제대로 이해하지 못했습니다.jQuery에 대한 도움이 필요합니다. addMethod를 확인하십시오.

은 여기가 변경 이벤트과 같습니다

$('#MKDPT').change(function() { 
if ($('#MKDPT').is(':checked')) { 
    var checked = false; 
    var ckd = ['AMX1N','BMFNP','BMFNB','CFE1N','CBEXR','CBT1','CBTQL','CME1','CMEQL','CMX1','DCMX1','DMERT','DMEDL','ERX1N','ERXXN','EXC1N','EXD1N','EXR1N','EXI1N','IPE1','KCB1','LME1','DLME1','MPL1','NDQ1N','NDQL2','CEC1','ICEFI','NYM1','DNYM1','NYMQL','NYS1N','NYSLM','PNK1P','PNK2N','SMX1','CNC1N','CNS1N','MTL1N','MTL2N','WEA1']; 
    $('#' + ckd.join(',#')).each(function() { // Select all these IDs 
     if (this.checked) { // Is this one checked? 
      checked = true; 
     } 
     return !checked; // Exit if any are checked 
    }); 
    if (!checked) { // None are checked 
     MKDPTAlert1(); 
    } 
}  
}); 

그리고 사용자 지정 유효성 검사 규칙에서 내 시도 :

당신이 볼 수 있듯이
$.validator.addMethod(
    "MKDPTOnly", 
    function(value, element, params) { 
    var checked = false; 
    var ckd = ['AMX1N','BMFNP','BMFNB','CFE1N','CBEXR','CBT1','CBTQL','CME1','CMEQL','CMX1','DCMX1','DMERT','DMEDL','ERX1N','ERXXN','EXC1N','EXD1N','EXR1N','EXI1N','IPE1','KCB1','LME1','DLME1','MPL1','NDQ1N','NDQL2','CEC1','ICEFI','NYM1','DNYM1','NYMQL','NYS1N','NYSLM','PNK1P','PNK2N','SMX1','CNC1N','CNS1N','MTL1N','MTL2N','WEA1'];$('#' + ckd.join(',#')).each(function() { // Select all these IDs 
     if (this.checked) { // Is this one checked? 
      checked = true; 
     } 
     return !checked; // Exit if any are checked 
    }); 
    if (!checked) { // None are checked 

    } 
}, Alert("foo"); 
); 

,이 끊어집니다. 표준 오류 배치가 아닌 경고로 표시하고 싶습니다. var "ckd"를 매개 변수로 사용해야합니까? Im은 어떻게 작동하는지에 대해 완전히 명확하지는 않지만 많은 도움을 필요로하기 전에 사용했습니다.

감사합니다. 이것은 당신이 다른 체크 박스 클래스 others의 컬렉션을 할당 한 가정합니다

$('#myForm').validate({ 
    rules:{ 
    MKDPT: { 
     required: { 
     depends: function(element){ 
      return $('.others:checked').length; 
     } 
     } 
    } 
    }, 
    messages:{ 
    MKDPT: 'foo' 
    } 
}); 

참고 :

답변

0

여기에 트릭을 할 에게서는 다른 방법입니다.

+0

그래서 addMethod를 사용하여 단계를 수행 할 필요가 없습니다. 클래스를 다른 체크 박스에 추가하고 규칙에 "depends : ...."를 사용 하시겠습니까? 진실한 것을 좋은 것처럼 보인다! –

+0

그 간단한되어야합니다 그래! – Ryley

+0

아무 것도하지 않는 것 같습니다. 길이> 0을 기준으로 한 수익입니까? 클래스 "others"를 체크하지 않고 MKDPT를 체크했다면 에러를 반환해야합니다. –

관련 문제