Sitecore -未检测到已修改的字段.如何强制显示保存提示符
Sitecore - Field not detected as modified. How to force the save prompt to show?
我们正在使用Sitecore的Taxonomy模块:https://marketplace.sitecore.net/Modules/T/Taxonomy.aspx?sc_lang=en
该模块在90%的时间内正常工作。唯一的问题是,当您在分类法字段中从自动完成选项中选择一个值时,该字段似乎没有被标记为已更改。当编辑发布"你想要保存吗?"提示符时没有显示,并且发布的内容没有标记,这会造成偶尔的混淆。
如果我们使用对话框而不是从自动完成中选择,一切都很好。
我查看了标记、JavaScript和c#代码,但找不到解决方案。我甚至尝试设置Sitecore.Context.ClientPage。修改= true但似乎没有任何作用
如何强制显示保存提示符?
我有一个类似的问题,我正在使用js更新一个字段,体验编辑器没有检测到变化。
我通过使用js做以下事情得到了这个工作:-
-
有一个保存按钮状态对象保存在视图状态字段。你可以通过window.parent.document.getElementById("__SAVEBUTTONSTATE")抓取。然后我做了以下操作:-
var saveButtonState = window.parent.document.getElementById("__SAVEBUTTONSTATE"); saveButtonState.value = 1; saveButtonState.onchange();
这将使保存按钮启用
-
在体验编辑器中,Sitecore将您的Sitecore项字段包装在一个span元素中,该元素包含一个唯一的id。(这些是你在体验编辑器中与之交互的字段)。然而,当你点击保存按钮时,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将字段强制设置为false
- 强制URL字段不具有“;http://www."使用regex
- 当javascript中的强制字段隐藏在条件中时,如何限制它们的验证
- 响应字段包含一个子级时的节点 SOAP 强制数组
- 如何强制 javascript 类忽略输出中外部添加的字段
- 如何强制输入表单中的活动下一个输入字段
- 唯一字段约束在 dropDatabase 之后未强制执行
- 在Razor生成的隐藏字段上强制执行类型,在没有强制转换的JavaScript中接收变量
- 如何在输入字段上强制使用小写字母
- 如何通过UI启用/禁用struts2网页中的强制字段
- 在JSF+PrimeFaces中重置表单之前,请检查是否输入了一些强制输入字段
- 如何使用正则表达式和javascript强制用户在输入字段中输入特定的模式
- 如何在jQuery中强制丢失表单中所有字段的焦点
- 使用Jquery数据表可编辑,没有强制字段URL
- 在PHP表单上强制设置一个输入字段
- 使用正则表达式键入时强制输入字段中的特定格式
- 无论何时点击后退按钮,清除表单中的所有字段
- Sitecore -未检测到已修改的字段.如何强制显示保存提示符
- 如何在codeigniter中使用一个提交按钮验证两个表单中的强制字段
- 在启用表单提交之前,强制用户填写所有字段