Laravel复选框里面的格式不会检查

时间:2016-01-25 19:55:43

标签: forms checkbox laravel-5

我被困在Laravel 5.2中,试图能够与表单内的复选框进行交互。 当我点击它们时,它们只是点亮,但不会被检查。 似乎当我删除表单标签(或刀片标签)时,可以检查复选框,但我需要它们在表单中提交,如果选中或不... 代码位于@section的home.blade.php中('内容') 这似乎有效:

@foreach($items as $item)
        <li>
                <input id="item" name="id" onClick="this.form.submit" type="checkbox" value="{{ $item->id }}" {{ $item->done ? 'checked' : ''}} />
                {{ $item->name }}
        </li>
@endforeach

Image of working checkboxes

但它在这里失败了:

@foreach($items as $item)
        <li>
            {{Form::open()}}
                <input id="item" name="id" onClick="this.form.submit" type="checkbox" value="{{ $item->id }}" {{ $item->done ? 'checked' : ''}} />
                {{ $item->name }}
            {{Form::close()}}
        </li>
@endforeach

Image checkboxes not working

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

看起来您正在将表单作为复选框的onclick事件提交。您只需在单击复选框后立即提交表单,并且由于表单提交给自己,因此它将以默认状态重新加载(未选中)。当您完成单击后,页面已重新加载,并且再次未被单击。

您删除表单标记时没有看到这一点的原因是因为事件(提交表单)不再起作用,因为不再提交表单。

我指的是这个有问题的属性:

onClick="this.form.submit"

答案 1 :(得分:0)

移动Form open&amp; Form close之外的foreach标记。它创造了许多与foreach循环一样多的形式。您的代码应如下所示:

{{Form::open()}}
@foreach($items as $item)
    <ul>
        <li>       
            <input id="item" name="id" onClick="this.form.submit" type="checkbox" value="{{ $item->id }}" {{ $item->done ? 'checked' : ''}} />
            <label for="id">{{ $item->name }}</label>
        </li>
    </ul>
@endforeach
{{Form::close()}}