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

Javascript Sitecore-未检测到字段已修改。如何强制显示保存提示?,javascript,c#,sitecore,taxonomy,Javascript,C#,Sitecore,Taxonomy,我们正在使用Sitecore的分类模块: 该模块90%的时间工作正常。唯一的问题是,当在分类法字段中从自动完成选项中选择一个值时,该字段似乎没有标记为已更改。这会偶尔引起编辑的困惑,因为他们在发布“您想保存吗?”?提示不显示,内容发布时没有标记 如果使用对话框而不是从自动完成中选择,则一切正常 我查看了标记、JavaScript和C代码,没有找到解决方案。 我甚至尝试将Sitecore.Context.ClientPage.Modified设置为true,但似乎没有任何作用 如何强制显示保存提示

我们正在使用Sitecore的分类模块:

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

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

我查看了标记、JavaScript和C代码,没有找到解决方案。 我甚至尝试将Sitecore.Context.ClientPage.Modified设置为true,但似乎没有任何作用


如何强制显示保存提示?

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

我通过使用js执行以下操作实现了这一点:-

视图状态字段中保存了一个保存按钮状态对象。您可以通过执行window.parent.document.getElementById\uu SAVEBUTTONSTATE进行抓取。然后,我做了以下工作:-

var saveButtonState = window.parent.document.getElementById("__SAVEBUTTONSTATE");
saveButtonState.value = 1;
saveButtonState.onchange();
这将启用“保存”按钮

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

$('#scFieldValues').children('input').each(function () {
                    if (id.indexOf($(this).attr('id')) >= 0) {
                        $(this).val(value);
                    }
                });
id对象是span元素的id。该id的内容用于隐藏输入的id中。这就是为什么我使用id.IndexOf来查找正确的输入元素。因此,当我更新span元素值时,我获取该值并更新相应的输入

希望这有帮助