如何关闭 SP.用户界面.模式对话框从按钮单击在共享点
How to close SP.UI.ModalDialog from button click in sharepoint?
我想在用户从 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);
}
现在我有以下疑问。
- SubmitDlg 和 CloseDlg 在单击"提交"或"提交"或"时不会触发取消。
- 这是从模式对话框提交表单(提交Dlg方法(和取消对话框(CloseDlg方法(的正确方法吗?
- 此外,只有在保存记录时没有验证错误时才应显示此模式对话框,这意味着如果需要任何字段值并且我们没有放置任何值,那么它应该显示内置的红色消息。
谢谢
在模式对话框的选项中,您需要传递对回调函数的引用,如下所示:
var opt = SP.UI.$create_DialogOptions();
opt.width = 500;
opt.height = 200;
opt.url = url;
opt.dialogReturnValueCallback = MyDialogClosed;
SP.UI.ModalDialog.showModalDialog(opt);
然后在回调函数中,您可以检查状态:
function MyDialogClosed(result, value) {
if (result == SP.UI.DialogResult.Cancel) {
//Cancel. Do whatever
}
else { //SP.UI.DialogResult.OK
//User clicked OK. You can pickup whatever was sent back in 'value' }
}
如果您需要从对话框发回内容,您可以使用以下内容:
function okClicked()
{
SP.UI.ModalDialog.commonModalDialogClose(1, someobject);
}
要完成这项工作,您需要使用如下所示的内容将函数连接到服务器端代码中的 OK 按钮:
protected override void OnLoad(EventArgs e)
{
if (Master is DialogMaster)
{
var dm = Master as DialogMaster;
if(dm != null) dm.OkButton.Attributes.Add(@"onclick", @"return okClicked();");
}
base.OnLoad(e);
}
将类"CloseSPPopUp"添加到您要单击以关闭的btn中
将此脚本添加到具有"CloseSPPopUp"的页面 btn
$('.CloseSPPopUp').click(function(){
window.top.CloseSPUIPopoup();
});
$('.CloseSPPopUp').click(function(){
window.top.CloseSPUIPopoup();
});
现在在主页上,您正在调用弹出窗口
function CloseSPUIPopoup{
$(".ms-dlgContent").hide();
}
原因:ms-dlgContent 类位于父页面中,CloseSPPopUp 位于运行时创建的 Iframe 中
相关文章:
- 单击按钮以等待单击按钮
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 当值更改时,在servlet中自动获取textarea值,无需单击按钮
- 单击按钮时循环浏览匹配的表
- 单击按钮后启动javascript提示
- 单击按钮时在灯箱中显示不同的内容
- 单击按钮时加载数据
- 如何在不需要单击按钮的情况下获取选项的值
- 单击按钮时显示随机字符串
- 在单击按钮前后禁用提交按钮
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 单击按钮时Div Increment
- 若单击按钮,则更改Javascript中的变量
- 单击按钮更改加载到表中的JSON文件
- 如何在单击按钮时显示2行1列的表格
- 单击按钮前运行事件
- 如何删除父表行时;删除“;在React JS中单击按钮
- 如何创建一个表并在单击按钮时插入此标签和文本字段
- JavaScript-onClick将按钮ID或单击按钮的文本传递给函数
- 如何在单击按钮时显示一个分区,同时隐藏另一个分区