You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中基于条件实现非禁用的只读勾选复选框问题

解决方案

你的问题出在第二个属性的Blade语法逻辑上,&&的写法在这里无法正确输出onclick属性。下面是修正后的代码,同时补充了更稳妥的只读控制方案:

修正后的HTML代码

<input 
    type="checkbox" 
    {{ $client->stay_night > 0 ? 'checked' : '' }} 
    {{ $client->stay_night > 0 ? 'onclick="return false;" onmousedown="return false;"' : '' }}
    {{ $client->stay_night > 0 ? 'style="pointer-events: none;"' : '' }}
/>

代码说明

  1. 修正条件判断:将原来的&&逻辑替换为三元运算符?:,确保当stay_night > 0时,正确输出onclick和onmousedown属性,阻止用户通过点击或鼠标按下操作修改复选框状态。
  2. 添加CSS辅助控制:通过pointer-events: none禁用复选框的所有鼠标交互,进一步强化只读效果,避免用户通过其他方式修改状态的可能。
  3. 保持非禁用状态:全程没有使用disabled属性,完全符合你的需求。

如果需要把CSS抽离到样式表中(更规范的做法),可以给复选框加一个类:

<input 
    type="checkbox" 
    class="{{ $client->stay_night > 0 ? 'readonly-checkbox' : '' }}"
    {{ $client->stay_night > 0 ? 'checked' : '' }} 
/>

对应的CSS:

.readonly-checkbox {
    pointer-events: none;
    cursor: not-allowed;
}

内容的提问来源于stack exchange,提问作者ghost_of_the_code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 16:52:04