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

如何通过AJAX复制编辑textarea值并提交至另一textarea?代码排查

问题分析与解决方案

你的代码核心问题在于DOM处理冗余、请求参数格式错误,导致后端无法正确解析提交内容,以下是修正方案:

修正后的代码

$.ajax({
    url: 'https://www48.myfantasyleague.com/2022/csetup?L=43570&C=HMPGMSG&SEQNO=34',
    xhrFields: {
        withCredentials: true
    },
    cache: false,
    type: "GET",
    dataType: 'html',
    success: function (data) {
        // 提取textarea内容并转为临时DOM容器
        var textareaContent = $(data).find('textarea').val();
        var tmpElement = $('<div>' + textareaContent + '</div>');
        
        // 直接为所有module标签添加YEAR属性
        tmpElement.find("module").attr('YEAR', '2021');
        
        // 将处理后的DOM转为HTML字符串
        var processedContent = tmpElement.html();
        
        $.ajax({
            url: baseURLDynamic + "/" + year + "/message?LEAGUE_ID=" + league_id + "&NAME=message34",
            xhrFields: {
                withCredentials: true
            },
            // 以键值对形式传递处理后的内容,方便后端接收
            data: { content: processedContent },
            beforeSend: function (jqXHR, settings) {
                console.log(settings.url);
                console.log("待提交内容:", processedContent); // 调试用,确认属性已添加
            },
            cache: false,
            type: "POST",
            success: function (response) {
                console.log("SUCCESS");
            },
            error: function (xhr) {}
        });
    },
    error: function (xhr) {}
});

关键修改说明

  • 移除冗余遍历:原代码中$(tmpElement).each完全多余,tmpElement本身是单个div容器,直接调用find("module")即可选中所有目标标签
  • 转换为HTML字符串:提交时不能直接传递jQuery对象,必须用html()方法将DOM结构转为纯HTML文本
  • 规范参数格式:POST请求的data需为键值对形式,后端可通过对应参数名(比如示例中的content)获取处理后的内容
  • 增加调试日志:beforeSend中打印提交内容,方便确认YEAR属性是否已正确添加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:35:24