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

AJAX更新innerHTML后表单无法提交,修改后数据未定义求助

问题解决办法

核心问题1:workDone未定义

你修改后的AJAX代码里,获取文本框值的写法有误:$(workDone)是把未定义的变量workDone当作选择器,自然拿不到值。

正确写法是通过选择器定位目标textarea:

var workDone = $('textarea[name="workDone"]').val();

或者限定在目标表单内,更精准:

var workDone = $('#form textarea[name="workDone"]').val();

核心问题2:表单默认提交行为干扰

改用click事件委托后,按钮的默认表单提交行为仍会触发,导致页面刷新,AJAX请求可能被中断,这也是你觉得表单无法提交的原因之一。需要在事件里阻止默认行为:

修改后的完整代码:

$(document).on('click','[name=add]',function(event) {
  // 阻止表单默认提交,避免页面刷新
  event.preventDefault();
  
  var workDone = $('#form textarea[name="workDone"]').val();
  $.ajax({
    type: 'POST',
    url: 'pra.php',
    data: { workDone: workDone },
    success: function(response) {
      document.getElementById("returnvalue").innerHTML=response;
    },
    error: function(xhr, status, error) {
      console.log('AJAX request error:');
      console.log('Status:', status);
      console.log('Error:', error);
    }
  });
});

额外说明:原表单无法提交的原因

第一个AJAX成功后更新了returnvalue的innerHTML,如果第二个表单正好在这个元素内部,更新后原表单会被新DOM结构替换,原本绑定的提交事件就失效了。用事件委托(绑定在document上)是正确的做法,能确保新渲染的按钮依然能触发事件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 09:15:17