2012-09-10 1 views
1

이 필요합니다. 하나의 라디오 버튼은 고객이 향후 모든 통신이 종이 우편을 통해 이루어지기를 원할 때, 다른 버튼은 고객이 이메일을 통해 통신하기를 원할 때입니다. 사용자가 이메일을 선택하면jQuery를 검증 엔진에 필요한 블록 내 사용자 지정 나는이 개 텍스트 입력과 2 개 라디오 버튼과 양식을 가지고 검증

는 사용자가 자신의 이메일 주소를 입력 텍스트 상자 중 하나를 채울 필요가있다. 사용자가 우편을 선택하면 다른 상자에 우편 주소를 입력해야합니다.

function checkBillRoutePostalAddressConflict(field, rules, i, options){ 
    var fieldValue = field.val(); 
    var accountIdR = field.attr('id').match(/\d+$/); 
    var radioButton = jQuery('#postalBillsDestination_' + accountIdR); 
    if(!fieldValue && radioButton.attr("checked")){ 
    alert('options.allrules.checkBillRoutePostalAddressConflict.alertText') // for debugging 
    return options.allrules.checkBillRoutePostalAddressConflict.alertText; 
    } 
} 

검사기 내 입력 텍스트 필드 class="validate[funcCall[checkBillRoutePostalAddressConflict]]"

문제는이 작업을 나던되는 클래스에 추가됩니다

나는 이것에 대한 사용자 정의 JQuery와 검증 엔진 기능을 가지고있다. 조건이 맞음을 의미하는 디버깅 경고 메시지가 나타납니다. 다른 사용자 정의 유효성 검사기 중 하나로 바꾼다면 모든 것이 잘 작동합니다.

누군가가 당신이 비어 있고 다음 메시지가 jQuery를 사용하면 유효성 검사를 사용하고 싶어하기 때문에 표시되지 않습니다 야해 필드에 사용자 정의 유효성 검사 기능을 작성하는 경우 [필수] 내게 말했다.

이것이 사실이라면, 사람이 아닌 것을 너무 해키 해결의 어떤 종류를 알고 있나요?

하나의 옵션은 직접 showPrompt을 사용하는 것입니다,하지만 mabye 뭔가 깨끗하고 더 나은 무엇입니까?
감사합니다. 요소에 대한

답변

0

규칙은 참 또는 거짓뿐만 아니라 기능뿐만 아니라 수 있습니다. 그 기능은 이메일 체크 박스가 체크되어 있는지 확인하고 진실 (그렇지 않은 경우는 false) 반환 할 수 :

$('#form').validate({ 
    'rules': { 
     'email_text_field': { 
      'required': function() { return $('#email-radio').is(':checked'); } 
     } 
    }   
}); 

여기 required 유효성 검사기를 사용하는 기본.