Laravel复选框值更新问题求助:点击后值始终为1
问题排查与解决
你的问题根源是没有实际的可交互复选框,也没有监听复选框状态变化来更新approved的值。当前HTML只有两个隐藏输入,点击操作根本没触发任何值的改变,所以approved永远是默认的1。
修正步骤:
调整HTML结构,添加可点击的复选框
替换原有HTML,保留默认值为1的隐藏输入,同时添加可见复选框用于切换值:<input type="hidden" name="approved" value="1"> <input type="checkbox" id="approvalCheckbox" label="设置为已审核">添加JavaScript监听复选框状态,更新
approved的值
在Ajax脚本前加入事件监听,根据复选框勾选状态修改隐藏输入的value:$('#approvalCheckbox').on('change', function() { // 勾选时设为2,取消勾选时恢复为1 $('input[name=approved]').val(this.checked ? 2 : 1); });保留现有Ajax与控制器代码
你当前的Ajax传值代码和控制器接收代码逻辑正常,只要approved的值能被正确更新,就能传递到后端。
另一种简化方案(无需隐藏输入)
也可以直接利用复选框状态,省去隐藏输入:
- HTML:
<input type="checkbox" name="approved" value="2" label="设置为已审核"> - JavaScript:
// 传递时判断复选框状态,勾选传2,否则传1 approved: $('input[name=approved]').is(':checked') ? 2 : 1,
内容的提问来源于stack exchange,提问作者RA.IBOY
相关产品推荐
相关产品推荐

