2013-09-28 93 views
6

如何用select2更改数据占位符?如何在select2中更改占位符?

到目前为止,我已经尝试过。

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

这...

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

但无论是作品。

+2

它应该工作。请参见小提琴http://jsfiddle.net/JZQ3Q/请repplicate您的问题在这个小提琴。 – PSL

回答

7

我发现如果我只是设置attr例如$("#city").attr('data-placeholder', 'bar'),没有效果。但是,如果我设置attr,然后调用$("#city").select2()而没有参数,则占位符将更新。

例如

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

您也可以在已经实例化之后通过'select2'来更新占位符,而不改变周围的元素(例如'$(“#city”)。select2({placeholder:“bar”});')。 – redbmk

+1

无论如何,(重新)在元素上应用'select2()'也将失去之前通过javascript在此元素上设置的任何潜在选项。 –

1

把它放在你的定位器使用这样的HTML:

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

更改为数据占位符,它适用于select2。 '' –

2

对于其他人寻找一个属性的解决方案,以避免更改JS代码。我只需要自己查看一个项目,看来select2只需要属性data-placeholder =“”。

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

查看更多在这里:select2 options reference

+0

介意告诉我为什么downvote?我只是试图提供帮助,在这种情况下我没有看到我做错了什么? –

0

对于选择2版本4我指定的占位符文本中的JS初始化代码,然后使用$select.select2{placeholder:"updated text..."}

1

更新它,你也可以做这样的模板( html)级别。只要确保在第一个标签上分配一个空白(例如“”)字符串即可。

<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