【发布时间】:2020-08-21 18:56:25
【问题描述】:
我的申请表中有一个非常简单的复选框
<input type="checkbox" name="active" {{ ( empty(old('active')) ? '' : ' checked' ) }}>
我的要求是:
- 当用户第一次访问网站时,默认情况下应该选中该复选框
- 表单验证失败后复选框应保持其值
对我来说,仅仅使用old 似乎不可能实现这一点,因为它也可以
- (2)记住校验失败后的值但一开始默认不校验
- (1) 默认选中,例如
old('active', true)但随后将无法取消选中它(即验证失败后将选中未选中的框,因为默认值设置在old中)。
处理这个问题的标准方法是什么?还是没有办法使用另一个字段来检查表单是否已提交?
<input type="checkbox" name="active" {{ ( empty(old('active')) && !empty(old('submit')) ? '' : ' checked' ) }}>
<input type="hidden" name="submit" value="submit">
谢谢
【问题讨论】:
-
我会在控制器中执行逻辑以确定是否应该检查它。在不知道您是如何进行验证的情况下,很难提供比这更详细的信息,但是您可以将自己的闪存数据发送回 view 方法,其中包含有关复选框是否被选中的详细信息。如果闪存数据丢失,则默认为选中。将该变量发送到视图中,然后使用它。
-
谢谢,我会的。只是想知道是否已经建立了以这种方式处理复选框的东西
-
你是怎么解决的?我现在正面临。
标签: laravel laravel-blade