我想在事件上更改select2增强控件上的占位符.
所以我有这个…
<select id="myFoo" placeholder="Fight some foo...">
…然后增强:
init: function(){ $('#myFoo').select2(); },
所以现在它有正确的占位符.
但是,我想让它对一个事件做出反应并清除占位符…
someButtonPress: function(){ // $('#myFoo').placeholder(""); // $('#myFoo').attr('placeholder',""); // $('#myFoo').select2('placeholder',""); // $('#myFoo').select2({placeholder:""}); // none of these work }
这似乎是基本的,但我被困了.
我在文档中找不到任何东西.我在错误的地方看吗?
解决方法
更新
如果您通过HTML数据占位符属性设置占位符,则需要更改它,而不是内部选项,因此它将如Fabian H.所示:
$select.attr("data-placeholder","New placeholder text"); $select.data("select2").setPlaceholder();
或者如果没有,请使用内部选项select2.opts.placeholder:
var select2 = $select.data("select2"); select2.opts.placeholder = "New placeholder text"; select2.setPlaceholder();
这不是完美的,但是比黑客select2生成的HTML更好.
>这个$select.data(“select2”)可以获得内部的select2对象,所以你可以访问它的属性和方法(不仅仅是从外面导出的那些)
>接下来我正在更新占位符内部选项或更改相关的数据属性
>最后我触发内置方法setPlaceholder设置新的挂钩.
希望有帮助!