我尝试操作我的网站集中列表的“EditForm.aspx”(SharePoint 2013)。 我希望根据用户权限级别隐藏一些输入字段。 为了实现这一点,我使用以下代码将编辑器 Web 部件添加到 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)”的内容,但根据我所掌握的信息,我并没有真正理解这个概念。
有人可以帮忙吗?
非常感谢
本杰明
最佳答案
我认为错误出在 find 中 你使用title,你应该使用ID。当 id 包含“$”时要小心。 使用 firebug 查看 (jQuery(".ms-formbody").find(input[title='Dokumentennummer'] 是否返回任何内容。
关于jquery - 无法使用 jQuery 操作 EditForm.aspx 中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22609281/