1

SharePoint モーダル ポップアップで div コンテンツを表示しようとしています。以下は私のコードです:

function callPopup(){
var options = SP.UI.$create_DialogOptions();
    options.html = addFilePopup //id of the div to be displayed
    options.title = 'Add file';
    options.width = 300;
    options.height = 150;
    SP.UI.ModalDialog.showModalDialog(options);
}

HTML:

<div id="addFilePopup" align="center" runat="server">
        <div id="buttons">
            <input type="file" id="file" name="file" />
        </div>
        <div id="divOverwrite" style="margin-right: 60px;">
            <input type="checkbox" id="chkOverWrite" value="overwrite" />
            <label id="lblOverwrite">Overwrite if file already exists</label>
        </div>
        <div style="margin-top: 40px;">
            <input type="button" value="Add file" id="btnAddFile" onclick="AddAFile();"/>
            <input type="button" value="Cancel" id="btnCancel" />
        </div>
</div>

ポップアップは初めて正常に表示されます。しかし、関数 callPopup が 2 回目に呼び出されると、「addFilePopup」が未定義であると表示されます。ポップアップが初めて呼び出された後、div "addFilePopup" が DOM から削除されたようです。ここで何が間違っているのですか?

PS:divの「runat = server」の有無にかかわらず試しました。

4

2 に答える 2

-1

私は共有ポイントの初心者ですが、これは以前に起こりました。何が起こるかというと、元の div を使用していて、最初の呼び出し後に削除されます。この問題が解決しない場合は、jQuery clone() 関数を使用できます。

だから代わりに options.html = addFilePopUp

最初にdivの変数を作成することをお勧めします

var popUpDiv = $("div#addFilePopUp").clone();

次に、オプションを呼び出します

var options = SP.UI.$create_DialogOptions();
options.html = popUpDiv;
options.title = 'Add file';
options.width = 300;
options.height = 150;
SP.UI.ModalDialog.showModalDialog(options);

ただし、これにより div の複数のインスタンスが作成されるため、css を使用してオリジナルを非表示にする必要があります。お役に立てれば。

于 2013-10-23T15:08:52.533 に答える