从“自定义URL”页面中删除多值字段中的所有项目

时间:2013-02-05 17:25:52

标签: tridion tridion2009 custom-url

我有一个自定义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();
}

2 个答案:

答案 0 :(得分:3)

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

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

修改

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

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

答案 1 :(得分:0)

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

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

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

多值字段 - 应该使用数组作为returnValue。每个条目 在数组中表示字段中插入的值。