7

ユーザーが EDITForm.aspx からドキュメントを保存するときに、確認ダイアログを表示したいと考えています。そこで、次の JavaScript コードを作成しました。

function PreSaveAction() {

 var _html = document.createElement();
 _html.innerHTML = "  <input  type=\"button\"  value=\"Submit\"    onclick ='javascript:SubmitDlg();'  />  <input  type=\"button\"  value=\"Cancel\" onclick =\"javascript:CloseDlg();\"     /> </td>           </tr>   </tbody> </table>";


 var options = {
            title: "Confirm",
            width: 400,
            height: 200,
            showClose: false,
            allowMaximize: false,
            autoSize: false,
            html: _html           
        };
        SP.UI.ModalDialog.showModalDialog(options); 

}

function SubmitDlg() { 
   SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.OK);


}

function CloseDlg() {
     SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.Cancel);
}

現在、次のクエリがあります。

  1. [送信] または [キャンセル] をクリックしても、SubmitDlg および CloseDlg は発生しません。
  2. モーダル ダイアログからフォームを送信 (SubmitDlg メソッド) し、ダイアログをキャンセル (CloseDlg メソッド) するのは正しい方法ですか?
  3. また、このモーダル ダイアログ ボックスは、レコードの保存中に検証エラーがない場合にのみ表示されます。つまり、フィールド値が必要で、値を入力していない場合は、組み込みの赤いメッセージが表示されます。

ありがとう

4

2 に答える 2

0

クラス「CloseSPPopUp」をボタンに追加して、クリックして閉じます

このスクリプトを「CloseSPPopUp」ボタンのあるページに追加します

$('.CloseSPPopUp').click(function(){            
window.top.CloseSPUIPopoup();       
});

$('.CloseSPPopUp').click(function(){
window.top.CloseSPUIPopoup();
});

今、あなたがポップアップを呼び出しているメインページに

function CloseSPUIPopoup{
$(".ms-dlgContent").hide();
}

理由: ms-dlgContent クラスが親ページにあり、CloseSPPopUp が実行時に作成される Iframe にある

于 2014-11-20T03:42:39.890 に答える