Javascript 根据当前登录的属于Sharepoint组的用户,尝试在Sharepoint列表的新建/编辑表单中隐藏字段

Javascript 根据当前登录的属于Sharepoint组的用户,尝试在Sharepoint列表的新建/编辑表单中隐藏字段,javascript,jquery,list,sharepoint,sharepoint-online,Javascript,Jquery,List,Sharepoint,Sharepoint Online,使用Sharepoint online。我使用以下代码通过JS隐藏字段: <!-- jQuery Reference. You can refer it from Layouts Folder/Doc Library too, after uploading the script. --> <script src="https://mysite.sharepoint.com/SiteAssets/jquery-1.10.1.min.js"></script>

使用Sharepoint online。我使用以下代码通过JS隐藏字段:

<!-- jQuery Reference. You can refer it from Layouts Folder/Doc Library too, after uploading the script. -->
<script src="https://mysite.sharepoint.com/SiteAssets/jquery-1.10.1.min.js"></script>

<!-- Download SPServices from: http://spservices.codeplex.com/ Or use this CDN  -->
<script type="text/javascript" src="https://mysite.sharepoint.com/SiteAssets/jquery.SPServices-0.7.1a.min.js"></script>

<script type="text/javascript">
$(document).ready(function() {
 $().SPServices({
  operation: "GetGroupCollectionFromUser",
  userLoginName: $().SPServices.SPGetCurrentUser(),
  async: false,
  completefunc: function(xData, Status) {
  debugger;
  //If the current User does belong to the group "Service desk Operators"
    if (($(xData.responseXML).find("Group[Name='tecxperts']").length == -1))
     {
     debugger;
          //   alert("No, User Doesn't Exists!");                  
           $("select[title='Project']").parent().parent().parent().hide(); 
          $('td.ms-formlabel:contains("Project")').parent().hide();
          $('nobr:contains("Project")').closest('tr').hide();
       }
    else{
    debugger;      
        }
 });
});
</script>

$(文档).ready(函数(){
$().SPServices({
操作:“GetGroupCollectionFromUser”,
userLoginName:$().SPServices.SPGetCurrentUser(),
async:false,
completefunc:函数(扩展数据、状态){
调试器;
//如果当前用户确实属于“服务台操作员”组
if($(xData.responseXML.find(“组[Name='tecxperts']”)。长度==-1))
{
调试器;
//警报(“不,用户不存在!”);
$(“选择[title='Project'])。父项().parent().parent().hide();
$('td.ms formlabel:contains(“Project”)).parent().hide();
$('nobr:contains(“Project”)).closest('tr').hide();
}
否则{
调试器;
}
});
});
尽管Sharepoint group tecxperts存在,但如果出现
条件,则总是失败。这是一篇很老的文章,但我不明白为什么它不起作用


我还尝试将代码放入Web部件(脚本编辑器)中,并通过SP Designer直接转换为表单。是否有其他方法根据属于SP组的用户隐藏字段

请尝试下面的代码片段它工作正常我已将查找替换为字符串搜索


$(文档).ready(函数(){
$().SPServices({
操作:“GetGroupCollectionFromUser”,
userLoginName:$().SPServices.SPGetCurrentUser(),
async:false,
completefunc:函数(扩展数据、状态){
console.log(扩展数据)
如果(扩展数据状态==200){
var soapString=xData.responseText
var find=soapString.search(“tecxperts”)
如果(查找==-1){
警报(“在组中找不到用户”)
} 
否则{
警报(“在组中找到用户”)
}
}
}
});
});

如果当前用户确实属于“tecxperts”组,则不会输入以下代码:

if (($(xData.responseXML).find("Group[Name='tecxperts']").length == -1))
 {
 debugger;
      //   alert("No, User Doesn't Exists!");                  
       $("select[title='Project']").parent().parent().parent().hide(); 
      $('td.ms-formlabel:contains("Project")').parent().hide();
      $('nobr:contains("Project")').closest('tr').hide();
   }
您可能需要更改以下条件:

($(xData.responseXML).find("Group[Name='tecxperts']").length != -1
参考代码:


谢谢

您使用的是哪一版本的SharePoint?您可以使用SharePoint designer或文本编辑器编辑newform.aspx和editform.aspx?SharePoint Online