【问题标题】:When performing a replaceWith via Ajax, the html of the fields is not being replaced correctly通过 Ajax 执行替换时,字段的 html 没有被正确替换
【发布时间】:2021-08-05 01:37:30
【问题描述】:

在使用 Ajax 提交之前,由于需要,我正在更改表单上所有输入的 ID。

问题是当我使用 Ajax 提交时,我需要使用 replaceWith 函数替换表单中所有字段的 html,但它没有这样做。它只是更改了 html,但是当我在浏览器中检查它时,它似乎保留了原始 html。 应替换 HTML,如图 2 所示。

为什么不能正确替换 HTML?这种情况不应该用replaceWith函数吗?

var genericModal = getLastGenericModalObject();
var frmFormaContato = genericModal.find('.frm-create-edit');
var valdata = frmFormaContato.serialize();

$.ajax({
    url: url,
    type: "POST",
    traditional: true,
    data: valdata,
    headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
    success: function (data) {


        frmFormaContato.replaceWith(data);

        

        stopLoadGlobal();
    },
    error: function (e) {
        stopLoadGlobal();

        redirectToError(e.status);

        return false;
    }
});

谢谢你:)

【问题讨论】:

  • 什么是getLastGenericModalObject和数据?
  • 这是一个函数,它接受模态Bootstrap窗口的实例。
  • 更改 DOM 不会更改原始 HTML 源代码。您可以在 Elements 面板中看到更改,但在 View Source 中看不到。
  • 哇,这对我来说真的很糟糕,因为我需要保持字段 ID 是最新的。如果DOM的方式不同,而HTML的方式不同,除了混淆之外,还会带来问题。有没有办法让替换 100% 忠实?
  • 嗨@Jalber,你为什么要替换这个dom?你能分享更多的html代码并解释你的场景吗?

标签: javascript jquery ajax asp.net-core replace


【解决方案1】:

解决方案是在根据 DOM 替换 HTML 之前更改 ID。

var dataChanged = changeIds($(data));

frmFormaContato.replaceWith(dataChanged);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    相关资源
    最近更新 更多