2013-12-13 78 views
0

如何正確驗證使用Select2的選項值?在更改任何其他值之前設置了某個值時,我遇到問題。它看起來是正確的,但顯示驗證錯誤,直到我改變價值。感謝您的任何幫助。jQuery Select2&驗證引擎

+0

是否可以說明一些代碼的問題?我無法想象你的意思。 –

回答

1
+0

請注意,[只有鏈接的答案](http://meta.stackoverflow.com/tags/link-only-answers/info)不鼓勵,所以答案應該是尋求解決方案的終點(vs.而另一個引用的中途停留時間往往會隨着時間推移而過時)。請考慮在此添加獨立的摘要,並將鏈接保留爲參考。 – 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添加到您的頭標記。

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

這就是我如何調用select2 for jquery驗證引擎。

$("#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

回答提供明碼在Stack Overflow上不被接受。你能解釋一下你的解決方案是什麼以及它如何解決問題。 –

+0

嗨,Neol這是Jquery驗證引擎問題,它不支持select2庫,我使用if條件行對它進行了mofidied,它對我來說完美地工作。 ($(element).hasClass('select2-hidden-accessible')) $(element).next()。find(「[role = combobox]」)。removeClass('has- error 「); } –