Laravel:点击标签不设置复选框

时间:2014-05-30 23:48:34

标签: checkbox laravel formbuilder

我使用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() }}

我不确定问题是什么,但我可能错过了一些明显的问题。任何帮助是极大的赞赏!

2 个答案:

答案 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标签。