我尝试操纵网站集(SharePoint 2013)中列表的“EditForm.aspx”。 我希望根据用户权限级别隐藏一些输入字段。 为了实现这一点,我使用以下代码将编辑器webpart添加到EditForm.aspx的标准格式:
<script src="https://test-teamshare.zeiss.org/minimal/05011/Libs/jquery-latest.js"></script>
<script src="https://test-teamshare.zeiss.org/minimal/05011/Libs/jquery.SPServices-2013.01.js"></script>
<script type="text/javascript">
_spBodyOnLoadFunctionNames.push("hideInputFields");
function hideInputFields() {
$().SPServices({
operation: "GetRolesAndPermissionsForCurrentUser",
async: false,
completefunc: function(xData, Status) {
var userPerm = $(xData.responseXML).SPFilterNode("Permissions").attr("Value");
var userRole = $(xData.responseXML).SPFilterNode("Role").attr("Name");
if(jQuery(".ms-formbody").find(input[title='Dokumentennummer'])) {
alert("has found the Fiels");
}
if(userRole = "Vollzugriff") {
}
}
});
}
</script>
不幸的是,这并没有(至少完全)起作用。具有用户权限的部分运行良好,但我无法操纵输入字段。
我做错了什么?我试图用“_spBodyOnLoadFunctionNames.push()”替换“document.ready()”,但这也无济于事。
然后我读了一些关于“最小下载策略(MDS)”的内容,但我并不真正理解这个基于我对此的信息的概念。
有人可以帮忙吗?
非常感谢
本杰明
答案 0 :(得分:0)
我认为错误在于查找 你使用标题,你应该使用ID。当id包含'$'时要小心。 使用firebug查看是否(jQuery(“。ms-formbody”)。find(input [title ='Dokumentennummer']返回任何内容。