2011-09-28 1 views
1

새내기 유효성을 검사하기 위해 라디오 버튼과 체크 박스 버튼을 얻으려고합니다. 모두가이 있기 때문에jquery 유효성 검사 - 라디오 및 체크 박스를 검증하고 ErrorPlacemant를 사용하여 각 그룹 아래에 오류를 표시하려고합니다.

오류 메시지가 라디오/체크 박스의 마지막 그것의 그룹 아래에 나타납니다

라디오 버튼 는 선택 하나는 미디어에 ---

최소 선택 필수 체크 버튼이 필요 고유 ID 그룹으로 처리했지만 그룹을 확인하기 위해 addMethod에서 길을 잃었습니다.

--- 또한 ​​errorPlacement에서 요소 ID가없는 경우 어떻게해야합니까?

http://jsbin.com/aqekah/14

대부분 OK,하지만 지금은 내 경고에 다란의 잘못된 번호를

+0

"error.prependTo (element());"시도했습니다. 하지만 그것은 라디오 그룹 위의 오류 메시지를 배치했습니다. : – rudy

+0

업데이트 : Checkboxes에 2 가지 방법을 추가했는데 한 가지 방법을 다시 사용하기를 바랬지 만 "require-one"과 "require-1"을 복제해야했습니다. 다른 변경 사항은 표시되도록하는 것이 었습니다 체크 박스 트리오 세트의 맨 아래에 각 체크 박스 세트에서 마지막 레이블 ID를 부여한 다음 ErrorPlacement에서 사용했습니다. 제안 사항 : – rudy

+0

업데이트 : 라디오 버튼, 마지막 라디오 버튼 각각에 레이블 ID 추가 각 집합에서. 그런 다음 오류 배치에 사용합니다. 나는 끝났다고 생각한다. 완전히 만족스럽지 않다. 그래서 내가 뭘 잘못했는지에 대한 제안을하거나 그것을 개선하거나 깨끗하게 만들어야한다. 감사합니다 – rudy

답변

2

우리했다이이 내가 그것을 해결하는 방법, 그냥 다른 일 실제로 올 :

var validator = $('form#yourID').validate({ 
     errorPlacement: function (error, element) { 
      if (element.is(":radio")) { 
       element.closest('.rbl').after(error); 
       element.closest('.rbl').addClass('error'); 
      } 
      else if (element.is(":checkbox")) { 
       element.closest('.cbl').after(error); 
       element.closest('.cbl').addClass('error'); 
      } 
      else { // This is the default behavior of the script 
       error.insertAfter(element); 
      } 
     }, 
     rules: { ... 

<table cellpadding="0" cellspacing="0" class="rbl"> 
<tr><td><label><input type="radio" name="myradio" value="1"> Radio 1</label></td></tr> 
<tr><td><label><input type="radio" name="myradio" value="2"> Radio 2</label></td></tr> 
</table> 
: .rbl<table> 태그이며 다음 CSS를 다음과 같습니다

CSS :

FORM .rbl 
{ 
    float: left; 
} 
FORM .rbl TD 
{ 
    padding: 4px 24px 0 0; 
} 

같은이 체크 박스에 적용 할 수는 .cbl에 나와 있습니다. 다른 모든 비 라디오 및 체크 박스 유형은 표준 오류 배치를 사용합니다.

희망이 있습니다.

관련 문제