gpt4 book ai didi

javascript - Sitecore - 字段未检测为已修改。如何强制显示保存提示?

转载 作者:太空宇宙 更新时间:2023-11-03 15:35:14 25 4
gpt4 key购买 nike

我们正在使用 Sitecore 的分类模块:https://marketplace.sitecore.net/Modules/T/Taxonomy.aspx?sc_lang=en

该模块在 90% 的时间里工作正常。唯一的问题是,当您在分类字段中从自动完成选项中选择一个值时,该字段似乎没有被标记为已更改。当编辑发布“你想保存吗?”时,这偶尔会引起编辑的混淆。提示不显示,内容发布时没有标签。

如果我们使用对话框而不是从自动完成中选择,一切正常。

我查看了标记、JavaScript 和 C# 代码,但找不到解决方案。我什至尝试设置 Sitecore.Context.ClientPage.Modified = true 但它似乎没有做任何事情。

如何强制显示保存提示?

最佳答案

我有一个类似的问题,我正在使用 js 更新一个字段,但体验编辑器没有检测到更改。

我通过使用 js 执行以下操作来完成此工作:-

  1. View 状态字段中保存了一个保存按钮状态对象。您可以通过执行 window.parent.document.getElementById("__SAVEBUTTONSTATE") 来获取。然后我做了以下事情:-

    var saveButtonState = window.parent.document.getElementById("__SAVEBUTTONSTATE");
    saveButtonState.value = 1;
    saveButtonState.onchange();

这将使保存按钮启用

  1. 在体验编辑器中,Sitecore 将您的 sitecore 项目字段包装在一个包含唯一 ID 的 span 元素中。 (这些是您在体验编辑器中与之交互的字段)。然而,当您点击“保存”按钮时,Sitecore 收到的不是这些值。 Sitecore 实际上将项目字段的值存储在隐藏的输入中,因此当您与 span 元素交互时,这些隐藏的输入会在后台更新。因此,为了让 Sitecore 接收您的更改,您必须更新相应的隐藏输入。如果您在体验编辑器中打开 Inspect 元素并搜索“scFieldValues”,您将看到这些隐藏的输入。我使用 jquery 更新了该字段:-

    $('#scFieldValues').children('input').each(function () {
    if (id.indexOf($(this).attr('id')) >= 0) {
    $(this).val(value);
    }
    });

id对象是span元素的id。该 id 的内容用于隐藏输入的 id。这就是为什么我使用“id.IndexOf”来查找正确的输入元素。因此,当我更新 span 元素值时,我获取该值并更新相应的输入。

希望对你有帮助

关于javascript - Sitecore - 字段未检测为已修改。如何强制显示保存提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32061061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com