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

添加提交按钮禁用/启用功能后,表单提交数据闪显消失求助

问题解决:提交后表格数据消失

核心原因

点击表单的submit按钮时,浏览器会触发默认的表单提交行为,导致页面刷新,刚添加到表格的内容随即被清空。

修复方案

方案1:阻止表单默认提交行为

修改addData函数,添加阻止默认行为的代码,同时在按钮调用时传递事件参数:

function addData(event) { 
    // 阻止浏览器默认的表单提交刷新行为
    event.preventDefault();

    var rows = "";
    var a = document.getElementById("protein-oatmeal").value;
    var b = document.getElementById("toast-and-eggs").value;
    var c = document.getElementById("gyp").value;
    var d = document.getElementById("pw").value;

    rows += "<td>" + a + "</td><td>" + b + "</td><td>" + c + "</td><td>" + d + "</td><td>"+ b + "</td><td>"+ c +"</td><td>"+ a + "</td>";
    var tbody = document.querySelector("#list tbody");
    var tr = document.createElement("tr");

    tr.innerHTML = rows;
    tbody.appendChild(tr);
}

对应修改HTML中的提交按钮:

<input type="submit" id="submitButton" name="submit" onclick="addData(event)">

方案2:改用普通按钮类型

将submit类型按钮改为button类型,彻底避免触发默认提交行为:

<input type="button" id="submitButton" name="submit" onclick="addData()">

额外优化建议

当前addData函数会直接获取所有复选框的值,不管是否被选中。如果需要只展示用户勾选的选项,可以调整代码如下:

function addData(event) {
    // 若使用submit按钮,需保留此行阻止默认行为
    event.preventDefault();

    // 获取所有被选中的早餐选项
    const selectedItems = Array.from(document.querySelectorAll('input[name="breakies"]:checked'))
                              .map(item => item.value);

    // 将选中项填充到一周7天的单元格中,不足的重复已有选项
    const rowCells = selectedItems.concat(selectedItems.slice(0, 7 - selectedItems.length))
                                  .map(item => `<td>${item}</td>`)
                                  .join('');

    const tbody = document.querySelector("#list tbody");
    const tr = document.createElement("tr");
    tr.innerHTML = rowCells;
    tbody.appendChild(tr);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:10:26