我被困在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
但它在这里失败了:
@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
感谢您的帮助!
答案 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()}}