使用Bootstrap模态框与JQuery更新表格单元格失败,求问题排查
问题分析与修复
你的代码存在两个关键错误,导致表格内容无法更新:
选择器缺失符号
更新逻辑里的$('edit_qty').val()缺少ID选择器的#,jQuery无法定位到模态框中的输入框,自然获取不到新的输入值。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
相关产品推荐
相关产品推荐

