2012-02-13 14 views
6

में सभी विकल्पों को अचयनित करने के लिए मैं jquery multiselect विजेट का उपयोग कर रहा हूं। अगर वे सभी मैन्युअल रूप से चेक किए गए थे तो मैं सभी को अनचेक करना चाहता हूं। मेरे पास JSFiddle--> Codeमल्टीइलेक्स्ट विजेट

में नमूना कोड है यह काम नहीं करता है। जब चयन विकल्प मैन्युअल रूप से चुने जाते हैं, तो चयन में अनचेक विकल्पों में से कोई भी जांचें, यह मुझे पहली बार (अंतिम विकल्प के क्लिक पर) देता है। तो मैंने जांच की है कि $this.children("option").not('[selected]').length 1 और ui.checked है और uncheckAll पर कॉल कर रहा है लेकिन इसके बाद यह कोड ठीक से व्यवहार कर रहा है यदि $this.children("option").not('[selected]').length अंतिम को चुनते समय मुझे 0 देता है।

मुझे आश्चर्य है कि क्या हो रहा है।

+1

मैं पता नहीं है कि तुम क्या कह रहे हैं, और नियंत्रण रखने के/सही का निशान हटाएँ बेला में सभी मेरे लिए ठीक काम करता है? –

+0

मैन्युअल रूप से उन सभी को चुनने का प्रयास करें। multiselectclick घटना ट्रिगर हो जाना चाहिए। यदि सभी विकल्पों का चयन किया जाता है तो इसे अनचेक करना चाहिए जो – coool

+0

नहीं हो रहा है यदि यह मैन्युअल रूप से जांचता है तो यह मेरे लिए काम कर रहा है – Vigrond

उत्तर

12

अच्छी तरह से इसलिए यहाँ वहाँ विधि getCheckedselected options प्राप्त करने के लिए, समाधान आप क्या चाहते हैं ... जाँच documentation है। आपका काम नहीं कर रहा है क्योंकि प्लगिंग चुनिंदा तत्वों को दोबारा सुधारता है।

$('.multi').multiselect({ 
    click: function(e, ui){ 
    if($(this).multiselect("getChecked").length 
           == $('select.multi > option').length){ 
     $(this).multiselect("uncheckAll");  
    }   
    } 
}); 

बेला उदाहरण:http://jsfiddle.net/fG6PT/11/

संबंधित मुद्दे