1

SharePoint 2010 Foundation で作業していて、特定のグループのメンバーではないユーザーのカスタム editform.aspx のフィールドを無効にしようとしています。

そのため、現在のユーザーが「Change Control - Admins」グループのメンバーでない場合は、CCID フィールドを無効にします。

SPServices codeplex ディスカッション エリアで解決策と思われるものを見つけましたが、期待どおりに動作しません。ここで何が欠けているのかわかりません。

正しいフィールドを無効にしますが、現在のユーザーが指定されたグループに属しているかどうかは問題ではありません。

これを変更すると:

if($(xData.responseXML).find("Group[Name='Change Control - Admins']").length != 1)

これに:

if($(xData.responseXML).find("Group[Name='Change Control - Admins']").length == 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>
4

1 に答える 1