尝试根据用户电子邮件隐藏按钮

时间:2013-08-26 19:56:56

标签: javascript jquery sharepoint

我有这个按钮:

<a id="customAddNew" href="/ibs/_layouts/listform.aspx?PageType=8&amp;ListId={CED7A37E-B1B4-46DD-B5C6-9232195D7E16}&amp;RootFolder=" target="_self">Submit Work Order​​​</a>

我正在尝试使用此脚本根据登录用户隐藏按钮:

script type="text/javascript">
    var email = $().SPServices.SPGetCurrentUser({
        fieldName: "EMail",
        debug: false
        });

    var trimmedEmail = email.split("@");    
    var newButton = document.getElementById("customAddNew");

    if (trimmedEmail[1] == "napacanada.com"){
        //Is NAPA User, which can't Add New Items
        alert("napa user");
        newButton.style.display = "none";
        //$('#customAddNew').attr("display","none");
        alert("check point")
    }else{
        //Is City User, can Add New Items
        alert("none napa user");
        newButton.style.display = "block";  
        //$('#customAddNew').attr("display","block");
    }
</script>

我尝试过使用JavaScript和jQuery,但都没有用。这是我得到的错误:

  

无法读取null

的属性'style'

第一个警报可以正常运行,具体取决于用户,而不是检查点警报

1 个答案:

答案 0 :(得分:2)

看起来此脚本未设置为在任何特定时间运行,这意味着它可以在您的按钮出现在页面上之前执行。您正在使用jQuery,因此您可以利用document.ready事件:

<script type="text/javascript">
    $(document).ready(function(){
    var email = $().SPServices.SPGetCurrentUser({
        fieldName: "EMail",
        debug: false
        });

    var trimmedEmail = email.split("@");    
    var newButton = document.getElementById("customAddNew");

    if (trimmedEmail[1] == "napacanada.com"){
        //Is NAPA User, which can't Add New Items
        alert("napa user");
        newButton.style.display = "none";
        //$('#customAddNew').attr("display","none");
        alert("check point")
    }else{
        //Is City User, can Add New Items
        alert("none napa user");
        newButton.style.display = "block";  
        //$('#customAddNew').attr("display","block");
    }
    });

</script>

了解更多信息:http://learn.jquery.com/using-jquery-core/document-ready/