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 に答える