php 如何在Laravel中使用Illuminate/Html设置禁用的选择选项

kx1ctssn  于 2023-04-19  发布在  PHP
关注(0)|答案(7)|浏览(142)

我从Laravel开始,我使用Illuminate/Html来制作表单。
我想在第一个选项中添加禁用属性,但我找不到方法。

{!! 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() !!}
inkz8wg9

inkz8wg91#

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);
gajydyqb

gajydyqb2#

作为函数的签名:/html/index/index/index.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)
) !!}
atmip9wb

atmip9wb3#

通过查看源代码,这似乎是不可能的。https://github.com/illuminate/html/blob/master/FormBuilder.php#L532
传入的唯一参数是值、名称和所选的布尔值。看起来你有两种解决方案。使用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);

?>
w46czmvw

w46czmvw4#

这可能不是你要找的,但它会阻止用户选择第一个选项,但仍然在列表中。
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

uubf1zoe

uubf1zoe5#

我知道这篇文章很老了,但如果你和其他人仍然在寻找解决方案,我已经找到了一个简单的方法:
Form::select('tableSeat', ['' => 'Bitte Auswählen', '1' => '1', '2' => '2'], null, ['class' => 'form-control form-dropdown'], ['' => ['disabled']])
我们有一个选择元素与选项2表席位.最后一个数组表明,该字段的值''得到禁用.你可以杜你的字段1或2或任何值也要禁用

evrscar2

evrscar26#

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

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

zrfyljdw7#

这可能对你有帮助

Form::select('name_select', '', null, ['name' => '', 'id' => '', 'disabled' => 'disabled'])

相关问题