2013-12-13 3 views
0

Select2를 사용하는 옵션 값을 올바르게 검증하는 방법은 무엇입니까? 다른 값으로 변경하기 전에 값을 설정하면 문제가 발생합니다. 올바르게 보이지만 값을 변경할 때까지 유효성 검사 오류가 표시됩니다. 어떤 도움을 주셔서 감사합니다.jQuery Select2 & Validation Engine

+0

당신은 몇 가지 코드로 문제를 설명 할 수 있습니까? 나는 당신이 의미하는 것을 시각화 할 수 없다. –

답변

1

이 솔루션을 사용해보십시오.

How to make jQuery validation engine works well for select2()?

+0

[링크 전용 답변] (http://meta.stackoverflow.com/tags/link-only-answers/info)은 권장하지 않으므로 SO 답변은 솔루션 검색의 종점이어야합니다 (시간이 지남에 따라 부실 해지는 경향이있는 참고 문헌의 또 다른 중간 기착 (stopover)). 링크를 참조 용으로 유지하면서 독립형 시놉시스를 여기에 추가하는 것을 고려해보십시오. – kleopatra

1

에서 select2.js 파일

이 (라인 341)

if (this.indexOf("select2-") !== 0) { 

찾기 내가 같은 문제가 있었다

if (this.indexOf("select2-") !== 0 && this !== "validate[required]") { 
0

로 교체합니다. 그래서 select2.min.js이 스트로크를 찾을 수 (스크립트에 2 스트로크해야한다) :

D(this.container,this.opts.element,this.opts.adaptContainerCssClass)

당신이 발견 한 바로 뇌졸중 후이 코드를 추가

,this.container.removeClass("validate[required]")

이것은 당신의 문제를 해결할 것입니다.

0

이 css를 head 태그에 추가하십시오.

.has-error { 
     border-color: #dd4b39 !important; 
    } 

그리고 이것은 JQuery 유효성 검사 엔진에서 select2를 호출하는 방법입니다.

$("#form").validate({ 
      ignore: ".ignore, .select2-input", 
      rules: { 
       txtproduct: "required", 
       txtwarehouse: "required", 
       //txtdescription: "required", 
       txtquantity: {required:true,number:true}, 
       txtrate: {required:true,number:true}, 
       txtdiscounttype: "required", 
       txtdiscount: {required:true,number:true}, 
       txtamount: {required:true,number:true}, 
      }, 
     highlight: function (element, errorClass, validClass) { 
       $(element).addClass("has-error"); 
       if($(element).hasClass('select2-hidden-accessible')) 
       { 
        $(element).next().find("[role=combobox]").addClass('has-error'); 
       } 
      }, 
      unhighlight: function (element, errorClass, validClass) { 
       $(element).removeClass("has-error"); 
       if($(element).hasClass('select2-hidden-accessible')) 
       { 
        $(element).next().find("[role=combobox]").removeClass('has-error'); 
       } 
      } 
     }); 

은}

+0

스택 오버플로에서 제공되는 일반 코드는 허용되지 않습니다. 솔루션이하는 일과 문제가 어떻게 해결되는지 설명해주십시오. –

+0

안녕 Neol이 JQuery 유효성 검사 엔진 문제는 select2 라이브러리에 대한 지원, 나는 조건 라인을 사용하여 그것을 mofidied 그리고 그것은 나를 위해 완벽하게 작동합니다. if ($ (element) .hasClass ('select2-hidden-accessible')) { $ (element) .next(). find ("[role = combobox]") removeClass ('has- 오류 '); } –