我有这段代码:
<div class="form-group {{ (isset($errors) AND $errors->has('indicacao_interna')) ? 'has-error' : '' }}">
{{ Form::label('indicacao_interna', 'Indicação Interna', array('class' => 'col-lg-4 control-label')) }}
<div class="col-lg-3">
<div>
<label class='radio-inline'>{{ Form::radio('indicacao_interna', 1, oldRadio('indicacao_interna', 1, true)) }} Sim</label>
<label class='radio-inline'>{{ Form::radio('indicacao_interna', 0, oldRadio('indicacao_interna', 0, true)) }} Não</label>
@include('partials.validators.message_field', array('field' => 'indicacao_interna'))
</div>
</div>
</div>
它会生成以下代码:
<div class="form-group ">
<label for="indicacao_interna" class="col-lg-4 control-label">Indicação Interna</label> <div class="col-lg-3">
<div>
<label class="radio-inline"><input checked="checked" name="indicacao_interna" type="radio" value="1" id="indicacao_interna"> Sim</label>
<label class="radio-inline"><input name="indicacao_interna" type="radio" value="0" id="indicacao_interna"> Não</label>
</div>
</div>
如您所见,单选按钮具有相同ID 。这是错的,对吗?
并且...为什么收音机会生成相同的ID?不只是一个名字?
对不起我的英文...谢谢
答案 0 :(得分:1)
Tenta assim:
{{ Form::radio('indicacao_interna', 1, oldRadio('indicacao_interna', 1, true),
array('id' => 'indicacao_interna_1')) }}
{{ Form::radio('indicacao_interna', 1, oldRadio('indicacao_interna', 1, true),
array('id' => 'indicacao_interna_2')) }}
答案 1 :(得分:1)
是的,这是自动代码创建的一小部分。在幕后,Form::radio()
为输入调用相同的$this->input($type, $name, $value = null, $options = array())
常规函数,内部调用:
$id = $this->getIdAttribute($name, $options);
方法getIdAttribute()
具有以下定义:
public function getIdAttribute($name, $attributes)
{
if (array_key_exists('id', $attributes))
{
return $attributes['id'];
}
if (in_array($name, $this->labels))
{
return $name;
}
}
这意味着,如果它在提供的选项中找到指定的ID,则返回该值,否则返回该名称。
对于其他输入类型而言,这是一个舒适且完全有效的解决方案,但对于无线电和复选框无效,您需要提供自己的ID。
{{ Form::radio('indicacao_interna', 1, oldRadio('indicacao_interna', 1, true),
array('id' => 'custom_id')) }}