0

リンク リストの SharePoint 2010 の新しいフォームで、コンテンツ エディター Web パーツを作成し、この jquery コードを挿入して、添付ドキュメントのファイル名を取得しました (ユーザーが添付した場合)。

基本的に、アイテムの順序付け機能を利用するために、リンク リストをドキュメント ライブラリに変えようとしています。

これは、新しい form.aspx ページで使用しているコードです。

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>

<script type="text/javascript">
    $('.ms-ButtonHeightWidth').eq(2).mousedown( function ( event ) {
        var my_array = $(".ms-vb");
        for (var i=0; i<my_array.length; i++) {
            text = $(my_array[i]).html();
            text = text.substring(1, text.length);
            text = text.substring(text.indexOf(">")+1, text.indexOf("<"));
            filename = text.substr(text.lastIndexOf("\\")+1);
            document.getElementById('ctl00_m_g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806_ctl00_ctl05_ctl03_ctl00_ctl00_ctl04_ctl00_ctl00_TextField_inplacerte').innerHTML = filename;
        }
    });
</script>

基本的に、保存ボタンにマウスダウンイベントを配置し、列フィールドの値を添付ファイル名に変更します。保存機能が発生する前に発生する必要があるため、マウスダウン。この後、ワークフローが発生し、この列フィールドの値がドキュメントへのハイパーリンクに変更されます。

上記のコードに欠陥がないかどうか知りたいです。安全に使用でき、壊れることはありませんか?現在、それは私のために働いています。

編集: (これは新しいフォームの保存ボタンのコードです)

<input name="ctl00$m$g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806$ctl00$toolBarTbl$RightRptControls$ctl00$ctl00$diidIOSaveItem" class="ms-ButtonHeightWidth" id="ctl00_m_g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806_ctl00_toolBarTbl_RightRptControls_ctl00_ctl00_diidIOSaveItem" accessKey="O" onclick="if (!PreSaveItem()) return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$m$g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806$ctl00$toolBarTbl$RightRptControls$ctl00$ctl00$diidIOSaveItem", "", true, "", "", false, true))" type="button" target="_self" jQuery17203303955991604388="1" value="Save"/>
4

1 に答える 1

0

保存機能が発生する前に終了しないことで、問題が発生している可能性があることがわかりました。可能であれば、ボタンのデフォルトの送信ハンドラーを でオーバーライドしてevent.preventDefault();から、コードが完成した後にデフォルトの送信関数を呼び出すようにしてください。

編集:動作する可能性のあるコード:

$('.ms-ButtonHeightWidth').eq(2).click( function ( event ) {
    // Stop default save function
    event.preventDefault();

    // Add in filename of attachment
    var my_array = $(".ms-vb");
    for (var i=0; i<my_array.length; i++) {
        text = $(my_array[i]).html();
        text = text.substring(1, text.length);
        text = text.substring(text.indexOf(">")+1, text.indexOf("<"));
        filename = text.substr(text.lastIndexOf("\\")+1);
        document.getElementById('ctl00_m_g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806_ctl00_ctl05_ctl03_ctl00_ctl00_ctl04_ctl00_ctl00_TextField_inplacerte').innerHTML = filename;
    }

    // Run default save function
    if (PreSaveItem()) {
        WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$m$g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806$ctl00$toolBarTbl$RightRptControls$ctl00$ctl00$diidIOSaveItem", "", true, "", "", false, true));
    }
});
于 2012-07-24T16:54:23.093 に答える