Javascript 根据当前登录的属于Sharepoint组的用户,尝试在Sharepoint列表的新建/编辑表单中隐藏字段
使用Sharepoint online。我使用以下代码通过JS隐藏字段: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>
<!-- 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