首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery spservices更新列表项

jquery spservices更新列表项
EN

Stack Overflow用户
提问于 2013-07-24 20:27:42
回答 3查看 7.9K关注 0票数 2

我正在尝试使用jquery spservices更新列表项。一切都正常,但是当我尝试向richtextfield添加href时,它不起作用。它只更新纯文本,而不更新href。下面是代码,这只是一个测试,所以这些urls是为了测试。

代码语言:javascript
复制
function fn_UpdateListItem(){
$().SPServices({
operation: 'UpdateListItems',
listName: 'Bedrijven',
ID: 1,
valuepairs: [["Software", "<a href='http://www.google.nl'>its a test.</a>"]],
completefunc: function(xData, Status) {
alert('test complete');
}
});
}

如果我将change参数更改为

代码语言:javascript
复制
valuepairs: [[\"Software\", \"test\"]],

它工作,它把测试放在富文本字段。但是对于href,它不起作用。有人知道怎么修复吗?感谢先行

EN

回答 3

Stack Overflow用户

发布于 2017-03-16 12:01:06

我在Sharepoint 2010上遇到了同样的问题,在这种情况下,变量dfNotes = CKEDITOR.instances.notes.getData();对我不起作用,我发现:

https://msdn.microsoft.com/en-us/library/office/ee658527(v=office.14).aspx

代码语言:javascript
复制
var value = SP.Utilities.HttpUtility.htmlEncode(html); 

编辑在Sharepoint 2016 SharePoint On-Premises上测试过,它也可以工作,所以我认为它应该也适用于SharePoint Online !!

这就是我的工作原理:

代码语言:javascript
复制
function AddListItem(html, list) { 
    var value = SP.Utilities.HttpUtility.htmlEncode(html);        
    $().SPServices({
        operation: "UpdateListItems",
        async: false,
        batchCmd: "New",
        listName: list,
        valuepairs: [["Title", 'Title'], ["Content", value]],
        completefunc: function(xData, Status) {
            console.log(Status);
        }
    });

} 
票数 2
EN

Stack Overflow用户

发布于 2014-01-30 20:53:57

这是实际的解决方案。在提交给SharePoint列表之前,经过HTML化的数据存储在XML中,这不适合嵌入的HTML标记,因此需要对它们进行转义。多亏了SPServices论坛上的feedback,我能够在上面的例子中确定情况就是这样。

我修改了我的代码,如下所示:

代码语言:javascript
复制
var dfNotes = CKEDITOR.instances.notes.getData();

$().SPServices({
    operation: "UpdateListItems",
    async: false,
    batchCmd: "Update",
    listName: list,
    ID: prog,
    valuepairs: [["Notes", $("#notes").text(dfNotes).html()]],
    completefunc: function (xData, Status) {
        alert($("#notes").html());
    }
});

第一行引用一个包含新修改的文本的富文本编辑器字段。注意XML行中的细微差别,它现在使用.text().html()来转义通过valuepairs传输的文本。

我希望这对某些人有帮助!

票数 1
EN

Stack Overflow用户

发布于 2014-05-17 01:37:25

您需要编码html代码(替换字符<和>为JavaScript:转义特殊字符,&lt;&gt;this is an example of some characters),这样您将有一个字符串可用于保存在富内容文本字段(备注)中,当项目更新时,您的数据将具有一个html代码。

代码如下:

代码语言:javascript
复制
function fn_UpdateListItem(){

    var link = htmlEscape('<a href='http://www.google.nl'>its a test.</a>');

    $().SPServices({
        operation: 'UpdateListItems',
        listName: 'Bedrijven',
        ID: 1,
        valuepairs: [["Software", link]],
        completefunc: function(xData, Status) {
            alert('test complete');
        }
     });
}

//This function makes the magic
function htmlEscape(str) {
    return String(str)
        .replace(/&/g, '&amp;')
        .replace(/"/g, '&quot;')
        .replace(/'/g, '&#39;')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;');
}

诚挚的问候

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17834048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档