2013-09-28 385 views
6

Làm cách nào để thay đổi trình giữ chỗ dữ liệu bằng select2?Cách thay đổi trình giữ chỗ trong select2?

Cho đến giờ tôi đã thử điều này.

$("#city").select2({placeholder:"foo"}); 

Và đây ...

$("#city").attr("data-placeholder","bar"); 

Nhưng không hoạt động.

+2

Nó sẽ làm việc .. Xem fiddle http://jsfiddle.net/JZQ3Q/ Hãy repplicate vấn đề của bạn trong fiddle này. – PSL

Trả lời

7

Tôi thấy rằng nếu tôi chỉ đặt attr, ví dụ: $("#city").attr('data-placeholder', 'bar'), không có hiệu lực. Tuy nhiên, nếu tôi đặt attr và sau đó gọi $("#city").select2() không có đối số, thì trình giữ chỗ sẽ cập nhật.

ví dụ:

$("#city").attr("data-placeholder","bar"); 
$("#city").select2(); 
+1

Bạn cũng có thể cập nhật trình giữ chỗ qua 'select2' sau khi đã được tạo, mà không thay đổi phần tử xung quanh (ví dụ:' $ ("# city"). Select2 ({placeholder: "bar"}); '). – redbmk

+1

Dù sao, (lại) áp dụng 'select2()' trên phần tử cũng sẽ mất bất kỳ tùy chọn tiềm năng nào được đặt trước đó trên phần tử này thông qua javascript –

1

Đặt nó trong html rằng định vị của bạn sử dụng như thế này:

<select id="city" placeholder="my placeholder"></select> 
+0

Thay đổi sang trình giữ chỗ dữ liệu và nó hoạt động với select2. '' –

2

Đối với những người khác tìm kiếm một giải pháp thuộc tính để tránh thay đổi mã JS. Tôi chỉ cần tự mình tìm kiếm một dự án, và có vẻ như select2 chỉ cần thuộc tính data-placeholder = "".

<select id="city" data-placeholder="my placeholder"></select> 

Xem thêm ở đây: select2 options reference

+0

Tâm trí cho tôi biết lý do từ chối? Tôi chỉ cố gắng để được hữu ích và tôi không thấy những gì tôi đã làm sai trong trường hợp này? –

0

Đối Select2 phiên bản 4 tôi đã chỉ định các văn bản giữ chỗ trong mã init js và sau đó cập nhật nó bằng cách sử $select.select2{placeholder:"updated text..."}

1

Bạn cũng có thể làm điều đó như thế này trong các mẫu (html). Chỉ cần đảm bảo chỉ định một chuỗi trống (ví dụ: "") trên thẻ đầu tiên của bạn.

<select class="test-select2" data-placeholder="Select Anything"> 
    <option value=""></option> 
    <option value="option1">Option 1</option> 
    <option value="option2">Option 2</option> 
</select> 

DEMO