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

使用Bootstrap模态框与JQuery更新表格单元格失败,求问题排查

问题分析与修复

你的代码存在两个关键错误,导致表格内容无法更新:

  1. 选择器缺失符号
    更新逻辑里的 $('edit_qty').val() 缺少ID选择器的#,jQuery无法定位到模态框中的输入框,自然获取不到新的输入值。

  2. DOM元素操作逻辑错误
    $(data[3]).text(...) 中的data[3]是单元格的文本内容(比如数量数值),并非表格单元格的DOM元素。你把字符串当作选择器创建jQuery对象,根本无法定位到目标单元格,所以修改操作无效。

另外,原代码里的$tr未用var/let/const声明,会成为全局变量,存在被意外覆盖的风险,建议优化为局部变量传递的方式。

修正后的代码

基础修复版本

// Update
$(document).on("click", "#update-product", function () {
    // 直接定位到目标td元素并修改内容
    $tr.children("td").eq(3).text($('#edit_qty').val());
    $('#editProductModal').modal('hide');
});

更严谨的版本(避免全局变量风险)

$(document).on("click", "#edit-btn", function () {
    $('#editProductModal').modal('show');
    let $tr = $(this).closest('tr');
    // 将当前行存储到模态框的自定义属性中
    $('#editProductModal').data('currentRow', $tr);
    
    var data = $tr.children("td").map(function(){
        return $(this).text();
    }).get();
    $('#edit_no').val(data[0]);
    $('#edit_orderuid').val(data[1]);
    $('#edit_productname').val(data[2]);
    $('#edit_qty').val(data[3]);
    $('#edit_weight').val(data[5]);
    $('#edit_price').val(data[6]);
    $('#edit_discount').val(data[7]);
});

// Update
$(document).on("click", "#update-product", function () {
    // 从模态框属性中取出当前行
    let $tr = $('#editProductModal').data('currentRow');
    $tr.children("td").eq(3).text($('#edit_qty').val());
    $('#editProductModal').modal('hide');
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:05:01