2013-03-15 35 views
1

在SharePoint 2010 Foundation中工作時,我試圖爲不是特定成員的用戶在自定義editform.aspx上禁用字段組。如果用戶不是指定的SharePoint組的成員,則使用SPServices禁用字段

因此,如果當前用戶不是「變更控制 - 管理員」組的成員,請禁用CCID字段。

我發現似乎是SPServices codeplex討論區中的解決方案,但它無法按預期工作。不知道我在這裏錯過了什麼。

它會禁用正確的字段,但如果當前用戶位於指定組中,則無關緊要。

如果我改變了:

如果($(xData.responseXML).find( 「本集團[名稱= '變更控制 - 管理員']」)長度= 1。!)

本:

如果($(xData.responseXML).find( 「本集團[名稱= '變更控制 - 管理員']」)長度== 1)

...然後領域沒有得到禁用。但是,如果當前用戶在指定組中,則無關緊要。

任何幫助將不勝感激。

這裏是我的代碼:

<script language="javascript" type="text/javascript" src="/CodeLibrary/jquery-1.7.2.min.js"></script> 
<script language="javascript" type="text/javascript" src="/CodeLibrary/jquery.SPServices-0.7.2.min.ssl.js"></script> 
<script language="javascript" type="text/javascript"> 
$(document).ready(function() { 
var groupName; 

$().SPServices({ 
     operation: "GetGroupCollectionFromUser", 
     userLoginName: $().SPServices.SPGetCurrentUser(), 
     async: false, 
     completefunc: function(xData, Status) { 
     //if current user is not a member of this group... 
     if($(xData.responseXML).find("Group[Name='Change Control - Admins']").length != 1) 
     { 
       //...disable the following fields 
       $("input[Title='CCID']").prop("disabled", "disabled"); 
       } 
     } 
    }); 
}); 

function PreSaveAction() { 
    $("input[Title='CCID']").removeProp("disabled"); 
    return true; 
} 
</script> 

回答

0

我在做一些非常相似。在我的情況下,我正在檢查以「GCP」開頭的組的成員資格並從匹配的組中提取一些文本。使用console.log()登錄到Firefox控制檯非常有用。 Firefox控制檯允許您深入到登錄到控制檯的對象中 - 這些東西不是由IE提供的(這種日誌記錄代碼不應該包含在發佈代碼中,尤其是因爲它可能會在IE中失敗)。該控制檯可從Firefox的Web Developer菜單中獲得。

$(document).ready(function() { 
    $().SPServices({ 
    operation: "GetGroupCollectionFromUser", 
    userLoginName: $().SPServices.SPGetCurrentUser(), 
    async: false, 
    completefunc: function(xData, Status) { 
     console.log(xData.responseXML); 
     var $groups = $(xData.responseXML).find("Group[Name^='GCP']"); 
     console.log("$groups.length:" + $groups.length); 
     if ($groups.length) console.log($groups.get(0).outerHTML); 
     var re = /GCP ((?:[^ ]*)(?:(?! Managers) [^ *]*)*) Managers/i; 
     var org = ""; 
     $groups.each(function(index, elt){ 
      var name = $(this).attr("Name"); 
      var matches = re.exec(name); 
      if (matches){ 
       org = matches[1]; 
       return false; 
      } 
     }); 
     setOrg(org); 
    } 
    }); 
}); 
相關問題