2013-09-28 16 views
6

Jak zmienić symbol zastępczy danych za pomocą select2?Jak zmienić symbol zastępczy w select2?

Do tej pory próbowałem tego.

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

I to ...

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

ale żadne prace.

+2

To powinno działać .. Patrz skrzypce http://jsfiddle.net/JZQ3Q/ Proszę repplicate problem w tym skrzypce. – PSL

Odpowiedz

7

Znalazłem, że jeśli po prostu ustawię wartość attr np. $("#city").attr('data-placeholder', 'bar'), nie ma efektu. Jeśli jednak ustawię wartość atr, a następnie zadzwonię pod numer $("#city").select2() bez żadnych argumentów, to zastępczy zostanie zaktualizowany.

np.

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

Można również zaktualizować symbol zastępczy za pomocą 'select2' po utworzeniu instancji, bez zmiany elementu (np.' $ ("# Miasto"). Select2 ({placeholder: "bar"}); '). – redbmk

+1

W każdym razie (ponowne) zastosowanie 'select2()' na elemencie spowoduje również utratę dowolnej potencjalnej opcji wcześniej ustawionej na tym elemencie poprzez javascript –

1

Umieścić go w html, że lokator używa tak:

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

Zmiana na symbol zastępczy danych i działa z select2. '' –

2

Dla innych osób poszukujących rozwiązania atrybutu aby uniknąć zmiany kodu JS. Po prostu musiałem sprawdzić to sam dla projektu, i wydaje się, że select2 po prostu potrzebuje atrybutu data-placeholder = "".

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

Zobacz więcej tutaj: select2 options reference

+0

Pamiętasz, dlaczego powód? Po prostu starałem się być pomocny i nie widzę, co zrobiłem źle w tym przypadku? –

0

Dla select2 wersja 4 I określony tekst zastępczy w JS Init a następnie zaktualizować go za pomocą $select.select2{placeholder:"updated text..."}

1

Można również zrobić to w ten sposób w szablonie (html). Po prostu pamiętaj o przypisaniu pustego (np. "") Łańcucha do pierwszego tagu.

<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

Powiązane problemy