我正在创建一个SharePoint网站,希望得到一些帮助。在我的主页上,我想要一个按钮,有人可以点击添加信息,点击按钮,我想要一个模态窗口打开。窗口打开后,它应该提示人们输入信息并将其保存到后台某处的列表中。我做了一些谷歌搜索,找不到这个。到目前为止,我尝试了我在谷歌上发现的这个JavaScript,但我似乎无法让它工作。你会看到下面的javascript,下面你会发现一个imgur链接,以更好地展示我想要完成的任务。
<script type='text/javascript'>
function OpenNewForm() {
var listName = 'MyListUrl';
var options =
{
url: L_Menu_BaseUrl + "/Lists/" + listName + "/EditForm.aspx?ID=1&IsDlg=1",
dialogReturnValueCallback: Function.createDelegate(null,newFormClosedCallback)
};
SP.UI.ModalDialog.showModalDialog(options);
}
function newFormClosedCallback(result, target) {
if (result === SP.UI.DialogResult.OK) {
SP.UI.Notify.addNotification("List item was added.", false);
}
if (result === SP.UI.DialogResult.cancel) {
SP.UI.Notify.addNotification("Add new item was cancelled.", false);
}
}
</script>
<input value='add a new item' type='button' onclick='OpenNewForm();' id='btnNewForm' />
答案 0 :(得分:0)
您提供的示例代码将起作用。您只需进行一些小的更改即可引用您的列表。此外,此代码引用editForm.aspx,如果您想要添加信息,则需要newForm.aspx。
function openNewForm() {
var listName = 'DisplayTitleOfYourList';
var options =
{
url: _spPageContextInfo.webAbsoluteUrl + "/Lists/" + listName + "/NewForm.Aspx",
dialogReturnValueCallback: Function.createDelegate(null,newFormClosedCallback)
};
SP.UI.ModalDialog.showModalDialog(options);
}
function newFormClosedCallback(result, target) {
if (result === SP.UI.DialogResult.OK) {
SP.UI.Notify.addNotification("List item was added.", false);
}
if (result === SP.UI.DialogResult.cancel) {
SP.UI.Notify.addNotification("Add new item was cancelled.", false);
}
}
<input value='add a new item' type='button' onclick='openNewForm();' id='btnNewForm' />
根据您的网站和网页的设置方式,您可能无法直接从内容编辑器或脚本编辑器Web部件执行javascript。我总是建议使用JS Link将javascript链接到页面,因为我觉得它更干净,更容易管理。有关详细信息,请参阅这些帖子:
https://sharepoint.stackexchange.com/questions/98583/javascript-in-content-editor-web-part-not-working-after-publishing-the-page Javascript not working in web part
https://sharepoint.stackexchange.com/questions/119018/how-do-you-use-js-link-with-pages