使用SPservices检查列表中是否存在当前用户

时间:2016-11-04 11:25:37

标签: jquery sharepoint-2013 spservices

我创建了一个带有jquery / spservices的脚本,用于检查当前登录的用户ID是否出现在自定义列表中名为userid的列中。如果成功,它会返回一个警告,表示当前用户已找到。

如果找不到用户ID,我想要另一个警告说“你还没有注册”。它在查找用户ID的位置时确实有效,但似乎无法判断它不存在。

非常感谢任何帮助:)

这是代码:

var userName = $().SPServices.SPGetCurrentUser({
fieldName: "UserName"});var query = '<Query>' +
'<Where>' +
'<Eq>' +
'<FieldRef Name="userid" />' +
'<Value Type="User">' + userName + '</Value>' +
'</Eq>' +
'</Where>' +
'</Query>';$(document).ready(function() {
$().SPServices({
    operation: "GetListItems",
    async: false,
    listName: "test",
    CAMLViewFields: "<ViewFields><FieldRef Name='userid' /></ViewFields>",
    completefunc: function(xData, Status) {
        $(xData.responseXML).SPFilterNode("z:row").each(function() {
            if (userName == $(this).attr("ows_userid")) {
                alert("current user found");
            } else {
                alert("You need to register before accessing..");
            }
        });
    }
});});</script>

1 个答案:

答案 0 :(得分:1)

您可以尝试使用以下完整功能:

completefunc: function(xData, Status) {

    var matchFound = false; //define flag

    //loop through all rows
    $(xData.responseXML).SPFilterNode("z:row").each(function() {
        if (userName == $(this).attr("ows_userid")) {
            matchFound = true; //set the flag to true indicating matched record
        } 
    });

    if(matchFound)
        alert("current user found");
    else
        alert("You need to register before accessing..");
}