我的网页上有一个文本框和两个链接按钮。当我在文本框上放置一些值时,基于该值以及离开文本框时。我想隐藏或使链接按钮不可见。
<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运行时错误:无法获取未定义的属性'样式' 或空引用
答案 0 :(得分:0)
答案 1 :(得分:0)
在asp.net中,最终的渲染ID可能会在页面上发生变化,因此在javascript上你需要使用控件的.ClientID
...你的代码必须是:
document.getElementById("<%=link1.ClientID%>").style.display = 'none';
答案 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';
}