Select

Select

自定义选择控件。

<select class="form-control custom-select">
    <option selected="selected" value="2">Approved</option>
    <option value="3">Deleted</option>
    <option value="1">New</option>
</select>

Sizes

小尺寸

<div class="form-group form-group-sm">
    <select class="form-control custom-select">
        <option value="1" selected="selected">One</option>
        <option value="2">Two</option>
    </select>
</div>

大尺寸

<div class="form-group form-group-lg">
    <select class="form-control custom-select">
        <option value="1" selected="selected">One</option>
        <option value="2">Two</option>
    </select>
</div>

Options

禁用搜索

添加select-no-search 禁用搜索的 CSS 类。

<div class="form-group">
    <select class="form-control custom-select select-no-search">
        <option value="1" selected="selected">One</option>
        <option value="2" selected="selected">Two</option>
    </select>
</div>

动态选项创建

除了预先填充的选项菜单外,选择小部件还可以根据用户在搜索框中输入的文本动态创建新选项。此功能称为“标记”。要启用标记,请设置tags 选择权true:

<select
    class="form-control custom-select"
    data-tags="true"
></select>

选项组

使用optgroup 元素来创建选项组。

<select class="form-control custom-select">
    <option value="1">Please select an option</option>
    <option value="2">Ungrouped option</option>
    <optgroup label="Option Group">
        <option value="3">Grouped option</option>
        <option value="4">Another option</option>
        <option value="4">Third option</option>
    </optgroup>
</select>

AJAX 搜索

使用data-handler 属性从 AJAX 处理程序获取选择选项。

<select
    class="form-control custom-select"
    data-handler="onGetOptions"
    data-minimum-input-length="2"
    data-ajax-delay="300"
    data-request-data="foo: 'bar'"
></select>

AJAX 处理程序应在Select2 数据格式.

public function onGetOptions()
{
    return [
        'results' => [
            [
                'id' => 1,
                'text' => 'Foo'
            ],
            [
                'id' => 2,
                'text' => 'Bar'
            ]
            ...
        ]
    ];
}

或者一个更全面的例子:

public function onGetOptions()
{
    return [
        'results' => [
            [
                'id' => 1,
                'text' => 'Foo',
                'disabled' => true
            ],
            [
                'id' => 2,
                'text' => 'Bar',
                'selected' => true
            ],
            [
                'text' => 'Group',
                'children' => [
                    [
                        'id' => 3,
                        'text' => 'Child 1'
                    ],
                    [
                        'id' => 4,
                        'text' => 'Child 2'
                    ]
                    ...
                ]
            ]
            ...
        ],
        'pagination' => [
            'more' => true
        ]
    ];
}

结果数组可以分配给result 或者results 钥匙。作为 Select2 格式的替代方案,结果也可以作为关联数组提供(也分配给任一键)。由于 JavaScript 不保证对象属性的顺序,我们建议使用上面的方法来定义结果。

public function onGetOptions()
{
    $results = [
        'key' => 'value',
        ...
    ];

    return ['result' => $results];
}
豫ICP备18041297号-2