我需要在 ASP.Net 中使用文本框的 OnFocus 事件。
<asp:TextBox ID="TBAccountNum" runat="server" CssClass="textbox" Height="12px" Width="100px" Font-Size="Small" AutoCompleteType="None" Wrap="False" OnFocus="Validator()" OnTextChanged="TBAccountNum_OnLeave" AutoPostBack="true"></asp:TextBox>
唯一的方法是使用 Javascript,但我对此一无所知。我在 SO 上发现了这么一小段代码,看起来应该可以工作:
<asp:Content runat="server" ID="FeaturedContent" ContentPlaceHolderID="FeaturedContent">
<script type="text/javascript">
function Validator()
{
document.getElementsByName("btnValidateWork").style.visibility = "visible";
document.getElementsByName("btnSubmitWork").style.visibility = "hidden"
}
但是,当我运行它时,出现以下错误:
0x800a138f - Microsoft JScript runtime error: Unable to set value of the property 'visibility': object is null or undefined
你知道我做错了什么吗(除了尝试编写我一无所知的代码......:oP)?
所有相关代码现已发布。如果重要的话,我正在 Intranet 上使用 IE9(由公司强制要求,因此不能更改)。
最佳答案
document.getElementsByName("btnValidateWork") 返回一个 htmlcollection。您必须迭代它,并为每个项目(节点)添加正确的 css。
看看这个:Using document.getElementsByName() isn't working?
编辑:
要使用 getElementsByName,您的元素必须具有 name 属性。示例:
<button name="btnValidateWork">my button?</button>
document.getElementsByName("btnValidateWork")[0].style.visibility = "hidden";
fiddle :http://jsfiddle.net/chrisbenseler/h3dwwud6/
我认为更好的方法是使用 getElementsByClassName 并向其添加一些类,然后执行类似 document.getElementsByClassName("hidden") 的操作
关于javascript - 使用 Javascript 使按钮不可见或可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25794260/