Laravel - 将Select2默认设置为NULL而不是第一个选项

时间:2018-01-29 04:25:42

标签: php jquery mysql jquery-select2

我有一个Laravel编辑表单,它使用Select2 jQuery扩展,其中包含从数据库表中提取的选项。

以下是我所指的表单选择字段:

            <select id="ship_to" name="ship_to" class="js-example-basic-single2 form-control">
                @foreach($cCustomers as $customer)
                    <option value="{{$customer->id}}"
                    @if ($shipment->ship_to == $customer->id) selected="selected" 
                                 @endif
                    >{{$customer->customer_name}}</option>
                @endforeach
            </select>

现在,所有内容都弹出正常,选项就在那里,选择框已经转换为Select2格式。我的问题是,当我从数据库中提取数据时,如果特定列为空,则select2拉出第一个选项,而不是允许的空选择(是的,我选择了一个占位符),清除select2框就可以了。

所以我的问题就是这样:

如果我有一个记录,其中select字段为NULL,如何在我的select2框中将null值和占位符自动打开,而不是第一个选项?

当前输出:

<select id="ship_to" name="ship_to" class="js-example-basic-single2 form-control select2-hidden-accessible" data-select2-id="ship_to" tabindex="-1" aria-hidden="true">
        <option></option>
        <option value="164" data-select2-id="387">4G ENTERPRISES</option>
        <option value="192">4G ENTERPRISES</option>
        <option value="81">5280 PACKAGING</option>

2 个答案:

答案 0 :(得分:2)

来自docs。确保在select2选项中设置占位符:

$('#ship_to').select2({
    placeholder: "Please select a customer"
});

<select>中添加一个空选项(位于@foreach($cCustomers as $customer)

上方)
<option></option>

答案 1 :(得分:1)

您可以在foreach之前添加一个null值的选项。

<option value=""></option>

在foreach

之前添加以上行