You need to enable JavaScript to run this app. form提交跳转后edit_article页调用getElementById返回null问题求解
优惠活动
大模型
产品
解决方案
定价
更多

form提交跳转后edit_article页调用getElementById返回null问题求解

问题原因

formaction 属性仅用于指定表单提交的目标接口/页面地址,不会将原页面的DOM元素同步到跳转后的新页面。你点击提交按钮后,后台管理页面销毁、跳转到edit_article.html,新页面本身不存在id="alert_ortho"的文本域元素,所以getElementById必然返回null,和你加的ready等待逻辑没有关系。

解决方法

你可以根据需求选以下任意一种方案实现:

方案1:后端渲染(推荐)

Spip本身支持直接读取POST请求的参数,你可以直接在edit_article.html模板中输出提交上来的alert_message内容,不需要用JS额外处理:

<div style="padding:10px; margin:10px; border: 3px solid #A0A0A0; text-align: center;background: #FFFF00;"> 
    <span style="color:#FF0000;"><strong>
        #ENV{alert_message}
    </strong></span>
</div>

方案2:前端本地存储

如果需要前端侧处理数据,可以在表单提交前把告警内容存储到本地,跳转后再读取:

  1. 先给后台管理页的提交按钮添加点击事件,存储内容:
document.querySelector('button[formaction="/edit_article.html"]').addEventListener('click', () => {
  localStorage.setItem('alert_msg', document.getElementById('alert_ortho').value);
});
  1. 在edit_article.html中读取存储的内容:
$(document).ready(function() {
  const msg_al = localStorage.getItem('alert_msg');
  console.log(msg_al);
  // 后续业务逻辑...
  // 不需要留存的话可以用完删除
  // localStorage.removeItem('alert_msg');
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 19:45:10