用户离开文本框时隐藏链接按钮

时间:2016-07-28 16:14:14

标签: javascript asp.net

我的网页上有一个文本框和两个链接按钮。当我在文本框上放置一些值时,基于该值以及离开文本框时。我想隐藏或使链接按钮不可见。

<asp:textBox id="textBox1" runat="server">
 <asp:linkButton id="link1" runat="server">
 <asp:linkButton id="link2" runar="server">

当用户在文本框中输入值“X”时,我想隐藏Link1和Link2,否则我希望Link1和Link2可见。

这是我的代码,它不起作用:

function HidePick(selectObj) {    
       if (selectObj.value.toUpperCase() == "D9") {
        document.getElementById("LINK1").style.display = 'none';
    }
}

  <td><asp:TextBox ID="TXTTest1" runat="server" CssClass="cssTest" Width="30" onmouseout="javascript:HidePick(this);"

显示错误消息:

  

“JavaScript运行时错误:无法获取未定义的属性'样式'   或空引用

3 个答案:

答案 0 :(得分:0)

对于那种DOM操作,使用jQuery很容易。

JS小提琴 - https://jsfiddle.net/p8pm6r5r

foaf

答案 1 :(得分:0)

在asp.net中,最终的渲染ID可能会在页面上发生变化,因此在javascript上你需要使用控件的.ClientID ...你的代码必须是:

document.getElementById("<%=link1.ClientID%>").style.display = 'none';

相关:Accessing control client name and not ID in ASP.NET

答案 2 :(得分:0)

 <asp:textBox id="textBox1" runat="server">
<asp:LinkButton ID="link1" runat="server" Text="Button1" />
<asp:LinkButton ID="link2" runat="server" Text="Button2" />

假设您不想使用jQuery或任何库;
在.aspx页面的htmls末尾添加一个脚本标记,将按钮绑定到 mouseleave mouseout 事件。只是为了确保你的textbox1的id是静态的(它在你的源中的方式),一旦你的页面在浏览器上呈现,检查你的textbox1并查看它是否仍然具有相同的id,如果没有,那么复制该id并替换从textbox1到(whatever_textbox1)的javascript代码的事件绑定线下面。您的链接ID也是同样的步骤。

document.getElementById("textBox1").addEventListener("mouseout",HidePick,false);
    function HidePick(e){
        if (e.target.value.toUpperCase() == "D9")
             document.getElementById("LINK1").style.display = 'none';    
    }