Laravel实现变量非空时checkbox保持选中、为空时未选中的方法
问题根源
HTML 中 checkbox 的 checked 是布尔属性:只要该属性出现在标签上,无论属性值填什么(哪怕是false、0、空字符串),浏览器都会将 checkbox 置为勾选状态。你原来的写法无论变量是否为空,checked 属性都始终存在,所以无法实现需求。
调整方案
你只需要通过模板的条件判断,仅在变量非空时才输出checked属性即可,调整后的代码如下:
<div class="n-chk"> <label class="new-control new-checkbox new-checkbox-rounded checkbox-primary"> <input name="reingresado" {{ !empty($variable->actived) ? 'checked' : '' }} type="checkbox" class="new-control-input"> <span class="new-control-indicator"></span>¿Producto Reingresado? </label> </div>
如果需要额外兼容$variable->actived可能未定义的场景,可以把判断逻辑改成:
{{ isset($variable->actived) && !empty($variable->actived) ? 'checked' : '' }}
逻辑说明
- 当
$variable->actived非空时,模板会输出checked字符串,input标签带有checked属性,checkbox自动勾选 - 当
$variable->actived为空时,模板输出空字符串,checked属性不存在,checkbox保持未勾选状态
内容的提问来源于stack exchange,提问作者jere rosas
相关产品推荐
相关产品推荐

