4

我从 Laravel 开始,我使用 Illuminate/Html 来制作表单。

我想将 disabled 属性添加到第一个选项,但我没有找到方法。

{!! Form::open(['url' => 'shelter/pets']) !!}
    <div class="form-group">
        {!! Form::label('pet_type','Type:') !!}
        {!! Form::select('pet_type', ['Select Type','dog', 'cat'], 0, ['class' => 'form-control']) !!}
    </div>
    <div class="form-group">
        {!! Form::submit('Add pet', null, ['class' => 'btn btn-primary form-control']) !!}
    </div>
{!! Form::close() !!}
4

6 回答 6

8

只需通过disabled. options尝试 -

{!! Form::select('pet_type', ['Select Type','dog', 'cat'], 0, ['class' => 'form-control', 'disabled' => true]) !!}

您可以手动循环遍历 php 中的数组或使用 jquery。

$('select.someclass option:first').attr('disabled', true);
于 2015-04-21T11:38:16.620 回答
3

作为这里函数的签名:vendor/laravelcollective/html/src/FormBuilder.php line #625:

/**
     * Create a select box field.
     *
     * @param  string $name
     * @param  array  $list
     * @param  string|bool $selected
     * @param  array  $selectAttributes
     * @param  array  $optionsAttributes
     * @param  array  $optgroupsAttributes
     *
     * @return \Illuminate\Support\HtmlString
     */
    public function select(
        $name,
        $list = [],
        $selected = null,
        array $selectAttributes = [],
        array $optionsAttributes = [],
        array $optgroupsAttributes = []
    )

所以你可以像这样使用它:

{!! Form::select('pet_type', 
    ['Select Type','dog', 'cat'],
     0, //default selection
    ['class' => 'form-control'], //the select tag attributes
    [ 0 => [ "disabled" => true ] ] //list of option attrbitues (option value is the arrays key)
) !!}
于 2021-05-18T10:57:45.963 回答
2

通过源码查看,似乎是不可能的。该<select>元素建立在 https://github.com/illuminate/html/blob/master/FormBuilder.php#L532

传递的唯一参数是值、名称和选定的布尔值。看起来你有 2 个解决方案。使用 javascript (argh),或使用类似str_replace.

<?php

    $field = Form::select('pet_type', ['Select Type','dog', 'cat'], 0, ['class' => 'form-control']);

    // find value="Select Type" and replace with value="Select Type" dialled
    echo str_replace('value="Select Type"', 'value="Select Type" disabled', $field);

?>
于 2015-04-21T12:11:31.250 回答
0

这可能不是您正在寻找的内容,但它会阻止用户选择第一个选项但仍然在列表中。

Form::select支持A Grouped List,您可以这样使用它。

{!! Form::select('pet_type', ['Select Type' => ['dog', 'cat']], 0, ['class' => 'form-control']) !!}

更多细节: http: //laravel.com/docs/4.2/html#drop-down-lists

于 2015-04-21T12:24:14.193 回答
-1

最后一个数组用于形成 html 标签的属性,因此您只需将 disabled 传递给它:

    {!! Form::select('pet_type', ['Select Type','dog', 'cat'], 0, ['class' => 'form-control', 'disabled' => 'disabled']) !!}
于 2015-04-21T11:38:46.223 回答
-1

这可以帮助你

Form::select('name_select', '', null, ['name' => '', 'id' => '', 'disabled' => 'disabled']) 
于 2019-03-01T19:19:31.383 回答