无法使用jQuery处理EditForm.aspx中的输入

问题描述:

我尝试操作网站集(SharePoint 2013)中列表的“EditForm.aspx”。 我想根据用户权限级别隐藏一些输入字段。 为了实现这一点,我添加了一个编辑的WebPart到EditForm.aspx的标准形式用下面的代码:无法使用jQuery处理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)”的内容,但是根据我对这个信息的理解我并不真正理解这个概念。

任何人都可以帮忙吗?

感谢您非常

本杰明

我认为错误是找到 您使用的标题,你应该使用ID。当身份证包含'$'时要小心。 使用firebug来查看是否(jQuery(“.ms-formbody”)。find(input [title ='Dokumentennummer']]返回任何东西。