2012-09-28 5 views
2

안녕하십니까. 제 질문에 답변 해 주셔서 감사합니다.사용자 정의 유효성 검사 규칙 - jQuery 유효성 검사 Egine

유효성 검사 엔진 내에 유효성 검사 규칙을 만들어야합니다. 0 값을 허용하지 않습니다. 적어도 하나의 요소를 선택해야합니다. 선택 요소가 있고 기본값 (항목을 선택하십시오)은 필수가 아니기 때문에 값이 0입니다. 그러나 일단 체크 박스가 선택되면 필히 필히 확인해야합니다. 0이 유효한 값이기 때문에 클래스에 'validate [required]'클래스를 추가 할 수 없습니다. 그래서 내 질문은 0 값을 컨트롤러에 전달할 수없는 사용자 지정 규칙을 만드는 방법이 될 것입니다.

다시 한 번 감사합니다.

답변

2

나는 사용자 정의 유효성 검사가 필요 없다고 생각합니다. 확인란을 선택하면 jquery를 사용하여 필수 속성을 추가하고 선택하지 않을 때이 속성을 제거 할 수 있습니다 (또한 첫 번째로드 준비가 된 문서에서도 확인). 예를 들어 :

$('#myCheckBox').click(function() { 
      if ($(this).is(':checked')) { 
       $('#myDropDown').removeAttr('required'); 
      } 
      else { 
       $('#myDropDown').attr('required', true); 
      } 
     }); 

그러나이 경우에 <option> 값이 비어 있어야합니다. <option value>Please select an item</option> (나는 dropdownlists의 일반적인 동작을 알고 있기 때문에). 그런 다음 jquery 유효성 검사 플러그인은 필수 속성의 유효성을 자동으로 확인합니다.

편집

좋아, 당신은 확실히 사용자 정의 유효성 검사를 사용해야하는 경우, 당신은이 방법으로 수행 할 수 있습니다)

하나를 예를 들어 준비 문서)

$.validator.addMethod("checkIfNotZero", function (value, element) { 
      return this.optional(element) || ($('#checkbox').is(':checked')&&value!=0); 
     }, "Please, select value"); 
$.validator.addClassRules("mySpecificClass", { checkIfNotZero: true }); 
에 (당신에게 검증 방법을 추가

2) 드롭 다운 목록을 class="mySpecificClass"으로 표시

3) 그리고 $('#myDropDown').valid() 어디에 필요합니까 (예를 들어 onSubmit 이벤트 핸들러에서 $(form).validate()을 호출).

나는 그게 전부라고 생각합니다. 희망이 도움이 될 것입니다.

+0

은 필수가 아니기 때문에 비워 둘 수 없습니다 .. 컨트롤러에서 모든 선택 요소를 long []으로 매핑했습니다. 따라서 내가 컨트롤러의 값을 받으면 길어질 것으로 예상되며, 나는 나쁜 시간을 갖습니다. – Dragan

+0

spasiba alexey! – Dragan

+0

항상 환영합니다;) –

관련 문제