jQuery Select2占位符不起作用

时间:2014-02-06 23:04:49

标签: javascript jquery html twitter-bootstrap jquery-select2

我正在关注此文档http://ivaynberg.github.io/select2/以创建包含placeholder的选择框。我的问题是placeholder不起作用。你能帮忙解决这个问题吗?

代码:也在http://jsfiddle.net/VwGGU/3/

HTML

<select style="width:300px" id="source">
    <optgroup label="Alaskan/Hawaiian Time Zone">
        <option value="AK">Alaska</option>
        <option value="HI">Hawaii</option>
    </optgroup>
    <optgroup label="Pacific Time Zone">
        <option value="CA">California</option>
        <option value="NV">Nevada</option>
        <option value="OR">Oregon</option>
        <option value="WA">Washington</option>
    </optgroup>
</select>

使用Javascript:

$("#e2").select2({
    placeholder: "Select a State",
    allowClear: true
});

上面的示例显示“Alaska”而不是“选择州”作为占位符。

更新1:

现在添加select2.js并清空option。它仍然没有显示placeholder

HTML

<select style="width:300px" id="source" placeholder="testt test">
    <option></option>
    <optgroup label="Alaskan/Hawaiian Time Zone">
        <option value="AK">Alaska</option>
        <option value="HI">Hawaii</option>
    </optgroup>
    <optgroup label="Pacific Time Zone">
        <option value="CA">California</option>
        <option value="NV">Nevada</option>
        <option value="OR">Oregon</option>
        <option value="WA">Washington</option>
    </optgroup>

JS

$(document).ready(function () {
    $("#source").select2({
        placeholder: "Select a State",
        allowClear: true
    });
});

http://jsfiddle.net/VwGGU/6/

更新2:

奇怪的是,当我从github复制.css和.js链接时,jsfiddle给出了错误。此版本有效

HTML

<select style="width:300px" id="source" >
    <option></option>
    <optgroup label="Alaskan/Hawaiian Time Zone">
        <option value="AK">Alaska</option>
        <option value="HI">Hawaii</option>
    </optgroup>
    <optgroup label="Pacific Time Zone">
        <option value="CA">California</option>
        <option value="NV">Nevada</option>
        <option value="OR">Oregon</option>
        <option value="WA">Washington</option>
    </optgroup>

JS

$(document).ready(function () {
    $("#source").select2({
        placeholder: "Select a State",
        allowClear: true
    });
});

http://jsfiddle.net/VwGGU/9/

7 个答案:

答案 0 :(得分:41)

你做到了吗:

  

当占位符用于非多值选择框时,它要求您包含空标记作为第一个选项

答案 1 :(得分:31)

您的select元素的ID为source,但您的jQuery选择器中的ide2,您需要一个空的<option>标签

答案 2 :(得分:1)

$selectElement.select2({
    minimumResultsForSearch: -1,
    placeholder: 'Select Relatives'
}).on('select2-opening', function() {
    $(this).closest('li').find('input').attr('placeholder','Select Relative');
});

答案 3 :(得分:0)

试试这个。在html中你写下面的代码。

<select class="select2" multiple="multiple" placeholder="Select State">
    <option value="AK">Alaska</option>
    <option value="HI">Hawaii</option>
</select>

在您的脚本中编写以下代码。

<script>
         $( ".select2" ).select2( { } );
 </script>

答案 4 :(得分:0)

<select id="select2Box" class="form-control brand-select">
    <option value="">Select Franchise</option>
</select>

答案 5 :(得分:0)

您应该在选择项中添加一个空选项标签。

<select data-placeholder="Chose number" data-allow-clear="true" data-width="50%">
    <option></option>
    <option value="1">Number one</option>
    <option value="2">Number two</option>
    <option value="3">Number three</option>
</select>

检查此链接Placeholder only works when there's an empty option element

答案 6 :(得分:-2)

 <script>
         $( "#id").select2({ placeholder: "Select Franchise" });
 </script>