LinkBut​​ton.Text在js中未定义

时间:2015-06-10 15:56:44

标签: javascript asp.net

我想在asp.net中配置一个超链接来关闭/打开它的相关div。基本上,当用户点击符号X时,面板应该关闭并且应该出现符号+。单击+时,应再次显示该面板。我无法管理这个,我相信我的主要问题是“document.getElementById('<%= lb_closePanel.ClientID%>')。”value“即将定义为未定义。这是迄今为止的代码。感谢您的帮助!

<!DOCTYPE html>
....
<div class="appheader">
    <h1 class="appheaderContent">Search for Client</h1>
    <div id="checkBox"></div>
        <div id="closePanel"><h2 id="lblClosePanel">Close Panel</h2>
            <div id="xButton">
                <asp:LinkButton onclientclick="CloseOpenPanel('Search')" runat="server" Text="X" style="text-decoration:none; color:white" ID="lb_closePanel"></asp:LinkButton>
            </div>
        </div>
</div>
<div class="app" id="Search">
...
<div>
...
</html>

<script type="text/javascript">
    function CloseOpenPanel(obj) {      
        alert(document.getElementById('<%= lb_closePanel.ClientID %>').value); //here it comes undefined!!!!
        if (document.getElementById('<%= lb_closePanel.ClientID %>').value == 'X') {
            document.getElementById(obj).Visible = false;
            lb_closePanel.Text = '+';
        }
        else {
            document.getElementById(obj).Visible = true;
            lb_closePanel.Text = 'X';
        }
    }
</script>

2 个答案:

答案 0 :(得分:0)

不要使用.value,而是尝试使用.innerHTML来获取链接按钮内的文本(呈现为标记)

答案 1 :(得分:0)

您的代码没问题,只是代替属性value使用innerHTML

 alert(document.getElementById('<%= lb_closePanel.ClientID %>').innerHTML);