2012-02-13 77 views
6

Tôi đang sử dụng tiện ích nhiều lựa chọn jquery. Tôi muốn bỏ chọn tất cả nếu tất cả chúng được kiểm tra thủ công. Tôi có mã mẫu trong JSFiddle--> Codecách bỏ chọn tất cả các tùy chọn trong tiện ích đa lựa chọn

Điều này không hiệu quả. Khi chọn các tùy chọn được chọn theo cách thủ công, hãy kiểm tra xem không có tùy chọn nào chưa được chọn trong lựa chọn nó cho tôi 1 (ở lần nhấp tùy chọn cuối cùng) lần đầu tiên. vì vậy tôi đã kiểm tra nếu $this.children("option").not('[selected]').length là 1 và ui.checked và gọi số uncheckAll nhưng sau đó nó hoạt động đúng mã nếu $this.children("option").not('[selected]').length cho tôi 0 khi chọn số cuối cùng.

Tôi tự hỏi điều gì đang xảy ra.

+1

Tôi không có ý tưởng những gì bạn đang yêu cầu, và việc kiểm tra/bỏ chọn tất cả trong fiddle hoạt động tốt đối với tôi? –

+0

hãy thử chọn tất cả chúng theo cách thủ công. sự kiện đa lựa chọn sẽ được kích hoạt. nếu tất cả các tùy chọn được chọn sau đó nó nên bỏ chọn mà không xảy ra – coool

+0

nó làm việc cho tôi nếu tôi kiểm tra chúng bằng tay – Vigrond

Trả lời

12

cũng vì vậy đây là giải pháp những gì bạn muốn ... kiểm tra documentation, có phương pháp để có được getCheckedselected options. máy của bạn không hoạt động vì cắm định dạng lại các yếu tố được chọn.

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

fiddle dụ:http://jsfiddle.net/fG6PT/11/

9
$("#multiselectelement").multiselect("uncheckAll"); 
Các vấn đề liên quan