在线使用Sharepoint。我正在使用以下代码通过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>
尽管共享点组 tecxperts 存在,但IF
条件始终失败。这是很老的帖子,但是我不明白为什么它不起作用。
我还尝试过将代码放入webpart(脚本编辑器)中,并通过SP Designer直接放入表单中。还有其他方法可以根据属于SP组的用户隐藏字段
答案 0 :(得分:0)
请尝试以下代码片段,效果很好,我已用字符串搜索替换了查找内容
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery.SPServices/2014.02/jquery.SPServices.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$().SPServices({
operation: "GetGroupCollectionFromUser",
userLoginName: $().SPServices.SPGetCurrentUser(),
async: false,
completefunc: function(xData, Status) {
console.log(xData)
if(xData.status == 200) {
var soapString = xData.responseText
var find = soapString.search("tecxperts")
if(find == -1){
alert("user not found in the group")
}
else{
alert("userfound in the group")
}
}
}
});
});
</script>
请接受投票
祝你愉快
答案 1 :(得分:0)
如果当前用户确实属于“ tecxperts”组,则不会输入以下代码:
pub struct Map<K, V> {
delegate: SomeReferenceType<Arc<HashMap<K, V>>>
}
impl<K, V> Map<K, V> {
pub fn get(&self, k: &K) -> Option<&V> {
self.delegate.borrow().get(k)
}
fn update(&mut self, new_delegate: HashMap<K, V>) {
self.delegate.set(Arc::new(new_delegate));
}
}
pub struct UpdateService<K, V> {
collection: Arc<Map<K, V>>
}
impl<K, V> UpdateService<K ,V> {
pub fn get_collection(&self) -> Arc<Map<K, V>> {
collection.clone()
}
// Called from a thread run on a cadence
fn update_collection(&mut self) {
let new_value = /* fetch and process value from backing store */
self.collection.borrow_mut().update(new_value);
}
}
您可能需要更改条件,如下所示:
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();
}
参考代码: Hide Fields using Permission Levels in SharePoint using Java Script
SHAREPOINT – USE JQUERY TO HIDE COLUMNS BASED ON A USERS GROUP MEMBERSHIP
谢谢