2012-04-05 3 views
3

jQuery UI를 사용하여 셀렉트 박스의 스타일을 지정했기 때문에 셀렉트 박스의 유효성을 검사하고 싶습니다.jQuery UI 유효성 검사 플러그인과 함께 선택

JQuery와 UI는 디스플레이의 실제 선택 박스를 설정 : html

을하지만 그것은 jQuery를 UI의 선택 박스 플러그인과 함께 작동하는 방법을 만들 수 있습니다 : 볼이 작동하지 왜 그렇게 아무도 없다?

나는 약간의 해결책이있다. :)

+0

당신이 [SSCCE] (HTTP를 제공 할 수 있습니다 : // sscce을 당신은 selectMenu 수동 요소를 재 검증에 change 이벤트 활용하여이 문제를 얻을 수 있습니다 .org /)? 플러그인의 attach 메소드는 원래 선택 상자를 숨기고 사용자 정의 컨테이너로 display (none : 사용)를 대체합니다. 대신 [플러그인] (http://www.bulgaria-web-developers.com/projects/javascript/selectbox/)에서 제공하는 선택기로 작업해야합니다. – lzdt

+0

안녕하세요, 저는 정말 JS 프로그래머가 아니므로 당신이 말하는 것을 정말로 이해하지 못합니다. 네가 나를 도울 수 있기를 바란다. 나는 지금 가지고있는 코드로 JSFiddle을 만들었습니다. http://jsfiddle.net/jB5mE/ – Maanstraat

답변

8

이것은 selectMenuselect을 숨기 때문입니다. 기본적으로 validate는 숨겨진 요소의 유효성을 검사하지 않습니다. 당신은 []ignore 옵션을 설정하여이를 변경할 수 있습니다 :

$(".valid").validate({ 
    meta: "validate", 
    ignore: [], 
    groups: { 
     checks: checkbox_names 
    }, 
    errorPlacement: function(error, element) { 
     if (element.attr("type") == "checkbox") 
      error.insertAfter(element.parent().siblings().last()); 
     else if (element.is("select")) { 
      error.insertAfter(element.next("a.ui-selectmenu")) 
     } 
     else error.insertAfter(element); 
    } 
}); 

당신이 selectMenu하지 않는 입력을 다시 확인 변경, 눈치.

// SELECTBOXES 
$(function() { 
    $('.dataTables_length input, select').not("select.multiple").selectmenu({ 
     style: 'dropdown', 
     transferClasses: true, 
     width: null, 
     change: function() { 
      $(".valid").validate().element(this); 
     } 
    }); 
}); 

예 :http://jsfiddle.net/8YvSN/

+0

당신은 남자입니다, thnx! 그러나 사용자가 옵션을 선택한 다음 오류 메시지가 사라지면이를 수행 할 수있는 방법이 있습니까? – Maanstraat

+0

@Maanstraat : 예, 업데이트 된 답변을 확인하십시오. –

+0

감사합니다. Andrew. – Maanstraat

관련 문제