jquery选择不显示数据占位符消息

时间:2013-06-04 16:47:30

标签: javascript webforms jquery-chosen

我使用来自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 });
            }
        }

3 个答案:

答案 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示例,就可以找到它。

JSFIDDLE

答案 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...")