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

Laravel框架中模态框内toggle开关仅能关闭无法开启如何解决?

问题原因&修复方案

1. JS复选框状态读取错误(核心问题)

你当前代码读取的是表单本身的checked属性,表单元素不存在该属性,导致拿到的状态永远为false,IsActive值固定为0,自然只能切换为非活跃状态,无法切回活跃。
将JS中对应行修改为:

// 选择表单内name为IsActive的复选框读取状态
const IsActive = $("#updatetaxform [name=IsActive]").prop('checked') ? 1 : 0;

2. AJAX请求缺失记录ID参数

控制器editTax方法中用$request->id作为筛选条件更新数据,但你的AJAX请求参数里仅传递了pid和IsActive,没有传递要修改的记录ID。
如果表单内有存储记录ID的隐藏域,补充获取和传递逻辑即可:

// 新增获取ID的逻辑
const id = $("#updatetaxform [name=id]").val();
const pid = $("#updatetaxform [name=pid]").val();
const IsActive = $("#updatetaxform [name=IsActive]").prop('checked') ? 1 : 0;
$.ajax({
    data: {
        id, // 把ID加入请求参数
        pid,
        IsActive
    },
    // 剩余代码不变
})

3. 检查模型批量赋值配置

确认TaxDetails模型中已经将IsActive加入$fillable属性,否则Laravel会自动过滤该字段的批量更新操作:

// TaxDetails.php
protected $fillable = [
    'pid',
    'IsActive',
    // 其他允许批量赋值的字段
];

可选优化

你当前在提交成功后既调用了datatable的fnDraw刷新表格,又执行了location.reload()页面重载,两个操作重复,保留任意一个即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:54:09