2013-09-25 26 views
10

Tôi đang sử dụng trình đơn thả xuống Đa lựa chọn khởi động thay vì số danh sách hiển thị khi nhấn chọn tất cả tùy chọn chúng tôi có thể hiển thị văn bản Tất cả đã chọn.Làm thế nào để thay đổi nhãn multiselect bootstrap thay vì chọn tất cả?

http://davidstutz.github.io/bootstrap-multiselect/

+1

bài một số mã, những gì đã bạn đã cố gắng cho đến nay? – Pratik

+0

Tôi đã cố gắng gỡ lỗi nhưng có vẻ như nó sử dụng jquery.js direclty. Không giống như nội dung tùy chỉnh. Trông có vẻ sai nhưng lạ. Nếu bạn có thể tìm ra trước 3 lựa chọn, bạn có thể mở rộng nó lên 4,5,6 tất nhiên. – mithataydogmus

Trả lời

1

tôi đã thay đổi 3 nút của (gợi ý nút của: Multiselect với một 'Chọn tất cả' tùy chọn) id để kiểm tra. Nó hoạt động nhưng bạn cần phải thêm id vào nút từ các công cụ phát triển (Chrome/Firefox thêm F12) trước tiên.

$('#test+ul>li').change(function(){ 
    $('#test').text($('#test').attr('title')); 
}); 

Bạn có thể kiểm tra sau khi thêm id. Vui lòng sử dụng jsfiddle.net sau đó. Bạn có thể tìm trợ giúp nhanh hơn.

15

Nếu ai đó trúng câu hỏi này trong tương lai, giải pháp là thay đổi

{ nonSelectedText: 'None selected' } 

gán một biến toàn cục cho văn bản này thay đổi nó thông qua JavaScript.

giá trị nằm trong tệp bootstrap-multiselect.js.

+0

Tôi rất vui vì tôi đã cuộn xuống, thao tác này hoàn hảo. Bạn có thể đặt 'noneSelectedText' cho mỗi đối tượng multiselect mới, nếu bạn có nhiều. Cảm ơn! –

+0

vui vì nó đã giúp .. :) –

10

Bạn có thể thay đổi "Label" (của multiselect bootstrap) văn bản cho tất cả 4 trường hợp "không được chọn", "n chọn", "Tất cả" Đã chọn hay "giá trị được chọn" như sau:

JQuery

$('#level').multiselect({ 
    includeSelectAllOption: true, 
    maxHeight: 150, 
    buttonWidth: 150, 
    numberDisplayed: 2, 
    nSelectedText: 'selected', 
    nonSelectedText: 'None selected', 
    buttonText: function(options, select) { 
     var numberOfOptions = $(this).children('option').length; 
     if (options.length === 0) { 
     return nonSelectedText + ' <b class="caret"></b>'; 
     } 
     else{ 
      if (options.length > numberDisplayed) { 
       if(options.length === numberOfOptions){ 
        return ' All Selected' + ' <b class="caret"></b>'; 
       } 
       return options.length + ' ' + nSelectedText + ' <b class="caret"></b>'; 
      }else { 
       var selected = ''; 
       options.each(function() { 
        var label = ($(this).attr('label') !== undefined) ? 
                 $(this).attr('label'):$(this).html(); 
        selected += label + ', '; 
       }); 
       return selected.substr(0, selected.length - 2) + ' <b class="caret"></b>'; 
      } 
     } 
    } 
}); 

HTML

<select multiple="multiple" id="level"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="opel">Opel</option> 
    <option value="audi">Audi</option> 
</select> 

Nó làm việc cho tôi. Chúc vui vẻ!

+0

Bằng cách nào đó tất cả các phần được chọn không hoạt động đối với tôi và rơi vào phần nSelected ... Về cơ bản các tùy chọn.length === numberOfOptions không hoạt động như nó nên, tôi không biết những gì có thể sai .. Bạn có gợi ý gì không? – Ekin

3

Sử dụng tùy chọn init obj.

$("#services").multiselect({ 
    nonSelectedText:'Services' 
}); 

Tùy chọn này làm việc cho tôi.

+0

Có lỗi đánh máy, thuộc tính được gọi là 'nonSelectedText' –

3

sử dụng dữ liệu placeholder

<select data-placeholder="Month"> 

Công việc này đối với tôi.

+0

Dường như không hoạt động. Phiên bản bạn đang sử dụng? – mdrozdziel

1

Câu trả lời của Philip làm việc cho tôi, nhưng chỉ làm cho nó hoàn chỉnh hơn một chút, nó nên được gọi khi tài liệu sẵn sàng. Vì vậy, các giải pháp đối với tôi, bao gồm thiết lập nhiều danh sách là:

$(document).ready(function() { 
    $("#bedrooms").multiselect({ 
     nonSelectedText:'Bedrooms' 
    }); 
    $("#bathrooms").multiselect({ 
     nonSelectedText:'Bathrooms' 
    }); 
    $("#garages").multiselect({ 
     nonSelectedText:'Garages' 
    }); 
    $("#livingareas").multiselect({ 
     nonSelectedText:'Living Areas' 
    }); 
}); 
2

Tiếp theo official documentation:

allSelectedText là nội dung hiển thị nếu tất cả các tùy chọn được chọn. Bạn có thể tắt hiển thị số allSelectedText bằng cách đặt thành false.

sử dụng tùy chọn

{ 
... 
allSelectedText: false, 
... 
} 
+2

Khi đưa ra một câu trả lời, bạn nên đưa ra [một số giải thích là tại sao câu trả lời của bạn] (http://stackoverflow.com/help/how-to-answer) là một câu trả lời. –

Các vấn đề liên quan