1

我有一个自定义 URL,它从多值文本字段中加载所有字段以进行修改。

单击保存按钮时,它应该更新所有字段,但目前它所做的只是添加其他参数而不是更新现有参数,我将如何删除所有准备重新填充的现有值。

我的保存功能看起来像这样

function SaveAndClose()
{
    var returnValues = new Array();

    var selectobject=document.getElementById("FeedItem")
    for (var i=0; i<selectobject.length; i++)
    {
        if (selectobject.options[i].value != '')
        {
            returnValues.push(selectobject.options[i].text);
        }
    }
    window.returnValue = returnValues;
    self.close();
}
4

2 回答 2

3

IIRC :) 多值字段的自定义 URL 弹出窗口的返回值是一个字符串数组。

因此,只需返回一个空数组,这实际上应该删除该字段的所有值。

编辑:

我不久前采取的方法是弄乱 Tridion 组件窗口的 DOM 结构。因此,在我的弹出代码中,我将处理“父”窗口并使用 JavaScript(jQuery 会做得很好)识别您想要的字段并删除其所有“多值”子节点。然后只需在你的 JS window.returnValue 中返回数组,它应该用你想要的值填充它。

不幸的是我找不到我几年前写的代码......所以你自己......

于 2013-02-05T18:01:27.533 回答
0

这可以通过 SDL Tridion 2011 中引入的新 API 实现,但我认为您在 2009 年无法做到。

来自 SDL Tridion 2009 SP1 内容管理实施手册

(第 9.15.3 节,使用自定义 URL 填写字段值)

多值字段 - 应使用数组作为 returnValue。数组中的每个条目代表一个要插入到字段中的值。

于 2013-02-05T17:58:11.783 回答