2012-06-09 3 views
2

페이지의 다른 설정에 따라 javascript를 통해 표시되거나 숨겨지는 div (상위 1) 내에 라디오 버튼 집합이 있습니다.jQuery 유효성 검사 플러그인 오류 메시지가 표시되지 않습니다.

<div class="parent1"> 
<input type="radio" name="legal_14" id="legal_14a" value="1" class="legal_14"/> <label for="legal_14a">option 1</label><br/> 
<input type="radio" name="legal_14" id="legal_14b" value="2" class="legal_14"/> <label for="legal_14b">option 2</label><br/> 
<input type="radio" name="legal_14" id="legal_14c" value="3" class="legal_14"/> <label for="legal_14c">option 3</label><br/> 
<span class="val-error"></span><br/> 
</div> 

라디오 버튼이 표시 될 때만 유효성을 검사하려고합니다. 그래서 내가 이렇게 같은이 상황을 처리 할 수있는 종속성 콜백이 있습니다

"legal_14": { 
    required: function() {if (!$('.parent1').is(':visible')) {console.log(false); return false;} else if ($("input[name='legal_14']:checked").length > 0) {console.log(false); return false;} else {console.log(true); return true;}}}, 
... 
errorPlacement: function(error, element) { 
    element.nextAll(".val-error").first().html(error.html()); 
}, 
success: function(label) { 
    label.nextAll(".val-error").first().html(); 
} 

그래서이 올바른 상황에서 오류 메시지를 표시하는 잘 작동합니다 (즉 버튼을 볼 수 있지만 클릭하지 않는 경우). 문제는 하나의 라디오 버튼을 선택하면 console.log가 false를 제대로 반환하지만 오류 메시지가 사라지지 않는다는 것입니다. 다른 곳에있는 비슷한 의존성 콜백을 가졌지 만 잘 작동하는 가시성에 의존하지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

0

내가 이해를 바탕으로,이 작업을해야합니다

나는 또한 체크 박스 중 하나가 실제로 체크 여부를 확인하고를 제외하고, 내가 뭐하는 거지 기본적이다
if($(".parent1").is(":visible")) 
{ 
    // do validation 

    // return message 
} 
+0

. 내 함수에서 올바른 반환 값을 얻었지만 오류 메시지를 지우지 않는 것 같습니다. –

관련 문제