为什么我的表单(收音机)默认检查 laravel 集体中的最后一个元素
why my form (radio) checked the last element by default in laravel collective
我不知道为什么我的 单选按钮 默认检查 laravel 集合中的最后一个元素,在我的例子中单选按钮用于 select 性别,每个元素包含代表性别的字母表 'L' 或 'P',在此先感谢,
<div class="form-group">
{{-- <label for="jenisKelamin" class="control-label">Jenis Kelamin</label> --}}
{{Form::label('jenisKelamin','Jenis Kelamin',['class'=>'control-panel'])}}
<div class="form-check">
{{-- <label>
<input type="radio" name="jenisKelamin" id="jenisKelamin" value="L" class="form-control" placeholder="Jenis Kelamin" >Laki-Laki</label> --}}
{{Form::radio('jenis_kelamin','L',['class'=>'form-check-input'])}}
<label class="form-check-label">Laki-Laki</label>
</div>
<div class="form-check">
{{Form::radio('jenis_kelamin','P',['class'=>'form-check-input'])}}
<label class="form-check-label">Perempuan</label>
</div>
</div>
@if($errors->has('jenis_kelamin'))
<br>
<div class="alert alert-danger">{{ $errors->first('jenis_kelamin') }}</div>
@endif
</div><br>
我假设您正在使用 laravelcollective/html
包。当我在互联网浏览器中查看原始 HTML 输出时,我看到的是:
<div class="form-group">
<label for="jenisKelamin" class="control-panel">Jenis Kelamin</label>
<div class="form-check">
<input checked="checked" name="jenis_kelamin" type="radio" value="L">
<label class="form-check-label">Laki-Laki</label>
</div>
<div class="form-check">
<input checked="checked" name="jenis_kelamin" type="radio" value="P">
<label class="form-check-label">Perempuan</label>
</div>
</div>
</div><br>
两个无线电输入都已检查(checked="checked"
)。由于两者具有相同的名称,这意味着一次只能检查一个,因此只会在屏幕上检查最后一个。
让我们看看 Form::radio
函数的源代码。它可以在您项目的 \vendor\laravelcollective\html\src\FormBuilder.php
中找到,或者在 Github repository 中找到。在这里我们看到函数有这个 header:
public function radio($name, $value = null, $checked = null, $options = [])
看来第三个参数应该是一个布尔值来确定检查状态,以及任何其他选项作为第四个参数。 documentation.
中也显示了这一点
在您的代码片段中,它看起来像这样:
{{Form::radio('jenis_kelamin','L', true, ['class'=>'form-check-input'])}}
{{Form::radio('jenis_kelamin','P', false, ['class'=>'form-check-input'])}}
如果有帮助的话,因为我找了一段时间才找到
{{ Form::radio('jenis_kelamin','L', true, ['class'=>'form-check-input', 'id' => 'id_l']) }}
{{ Form::label('id_l', 'Laki-Laki', ['class' => 'form-check-label']) }}
{{ Form::radio('jenis_kelamin','P', '', ['class'=>'form-check-input', 'id' => 'id_p']) }}
{{ Form::label('id_p', 'Perempuan', ['class' => 'form-check-label']) }}
在 Radio Input 上,在选项数组之前,添加一个空选项 '' 或 'true' 以供默认选择。
在 V 5.7 和 6 上工作
我不知道为什么我的 单选按钮 默认检查 laravel 集合中的最后一个元素,在我的例子中单选按钮用于 select 性别,每个元素包含代表性别的字母表 'L' 或 'P',在此先感谢,
<div class="form-group">
{{-- <label for="jenisKelamin" class="control-label">Jenis Kelamin</label> --}}
{{Form::label('jenisKelamin','Jenis Kelamin',['class'=>'control-panel'])}}
<div class="form-check">
{{-- <label>
<input type="radio" name="jenisKelamin" id="jenisKelamin" value="L" class="form-control" placeholder="Jenis Kelamin" >Laki-Laki</label> --}}
{{Form::radio('jenis_kelamin','L',['class'=>'form-check-input'])}}
<label class="form-check-label">Laki-Laki</label>
</div>
<div class="form-check">
{{Form::radio('jenis_kelamin','P',['class'=>'form-check-input'])}}
<label class="form-check-label">Perempuan</label>
</div>
</div>
@if($errors->has('jenis_kelamin'))
<br>
<div class="alert alert-danger">{{ $errors->first('jenis_kelamin') }}</div>
@endif
</div><br>
我假设您正在使用 laravelcollective/html
包。当我在互联网浏览器中查看原始 HTML 输出时,我看到的是:
<div class="form-group">
<label for="jenisKelamin" class="control-panel">Jenis Kelamin</label>
<div class="form-check">
<input checked="checked" name="jenis_kelamin" type="radio" value="L">
<label class="form-check-label">Laki-Laki</label>
</div>
<div class="form-check">
<input checked="checked" name="jenis_kelamin" type="radio" value="P">
<label class="form-check-label">Perempuan</label>
</div>
</div>
</div><br>
两个无线电输入都已检查(checked="checked"
)。由于两者具有相同的名称,这意味着一次只能检查一个,因此只会在屏幕上检查最后一个。
让我们看看 Form::radio
函数的源代码。它可以在您项目的 \vendor\laravelcollective\html\src\FormBuilder.php
中找到,或者在 Github repository 中找到。在这里我们看到函数有这个 header:
public function radio($name, $value = null, $checked = null, $options = [])
看来第三个参数应该是一个布尔值来确定检查状态,以及任何其他选项作为第四个参数。 documentation.
中也显示了这一点在您的代码片段中,它看起来像这样:
{{Form::radio('jenis_kelamin','L', true, ['class'=>'form-check-input'])}}
{{Form::radio('jenis_kelamin','P', false, ['class'=>'form-check-input'])}}
如果有帮助的话,因为我找了一段时间才找到
{{ Form::radio('jenis_kelamin','L', true, ['class'=>'form-check-input', 'id' => 'id_l']) }}
{{ Form::label('id_l', 'Laki-Laki', ['class' => 'form-check-label']) }}
{{ Form::radio('jenis_kelamin','P', '', ['class'=>'form-check-input', 'id' => 'id_p']) }}
{{ Form::label('id_p', 'Perempuan', ['class' => 'form-check-label']) }}
在 Radio Input 上,在选项数组之前,添加一个空选项 '' 或 'true' 以供默认选择。 在 V 5.7 和 6 上工作