我使用来自http://harvesthq.github.io/chosen/的插件作为我的选择。 在文档就绪时,我向它添加一个空选项,然后调用selected,但它永远不会呈现data-placeholder中定义的消息。我究竟做错了什么?我正在使用asp.net webforms,下拉列表绑定在服务器上。 下面是我的标记和我的javascript
<asp:DropDownList ID="cbxLanguage" data-placeholder="choose a language..." CssClass="input-large chzn-select" DataTextField="Name" DataValueField="Id" runat="server" Width="210" required="Language required"></asp:DropDownList>
和我在文档就绪时调用的javascript:
function pimpSelect(select, options) {
var prepend = '';
if (select.attr('data-placeholder')) {
prepend = '<option></option>';
}
if (options) {
options = prepend + options;
select.empty().html(options);
}
else {
select.prepend(prepend);
}
if (select.hasClass('chzn-select')) {
var _width = select.css('width');
select.chosen({ width: _width });
}
}
答案 0 :(得分:7)
原因是您应该首先初始化空值选项。
<option value=""></option>
你的选择应该是这样的。
<select name="cbxLanguage" id="ContentPlaceHolder1_cbxLanguage" class="chzn-select" data-placeholder="choose a language..." required="Language required" style="width: 210px;">
<option value=""></option>
<option value="1">English</option>
<option value="2">French</option>
<option value="3">Spanish</option>
</select>
我不确定原因,但如果您查看chosen.js
示例,就可以找到它。
答案 1 :(得分:1)
我有同样的问题,我做了以下事情:
初始化所选字段时,您不得在宽度尺寸上使用%。
$(".chosen").chosen({
'no_results_text' :'Oops, nothing found!',
'width' :'700px',
'search_contains' : true,
'placeholder_text_multiple':'Please choose something ...',
'display_selected_options':false
});
答案 2 :(得分:0)
您正在使用服务器端ASP.NET控件。它的属性不必(必然)一对一地转换为在渲染后最终在客户端的属性。
您需要在代码中执行此操作:
cbxLanguage.Attributes.Add("data-placeholder","choose a language...")