我使用Laravel的表单构建器生成登录表单。这看起来很简单,但它不起作用。我正在尝试为我的复选框创建一个标签,可以单击该标签来设置/取消设置复选框。目前,单击标签不会执行任何操作。这是我的代码:
{{ Form::open(array('url' => '/account/login', 'role' => 'form')) }}
{{ Form::token() }}
<div class="form-group">
{{ Form::label('email', 'Email Address', array('class' => 'sr-only')) }}
{{ Form::text('email', '', array('class' => 'form-control', 'placeholder' => 'Email Address')) }}
</div>
<div class="form-group">
{{ Form::label('password', 'Password', array('class' => 'sr-only')) }}
{{ Form::password('password', array('class' => 'form-control', 'placeholder' => 'Password')) }}
</div>
{{ Form::submit('Login', array('class' => 'btn btn-default')) }}
<a href="#forgotpassword" class="btn btn-link btn-sm pull-right">Forgot password?</button></a><br>
{{ Form::checkbox('remember') }}
{{ Form::label('remember', 'Remember me') }}
{{ Form:: close() }}
我不确定问题是什么,但我可能错过了一些明显的问题。任何帮助是极大的赞赏!
答案 0 :(得分:5)
我认为标签元素链接到id
属性而不是name
属性。 (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label)
您需要在复选框元素中创建ìd
表单。
您可以尝试类似
的内容 {{ Form::checkbox('remember', 1, null, ['id'=>'remember', 'class' => 'className']) }}
这应该有用。
答案 1 :(得分:1)
问题是,如果标签位于input元素之前,则会自动创建id标记。 但不是,如果标签出现之后。所以你需要手动添加id标签。