我有一个简单的VB / ASP.NET表单,包含两个文本框,我试图使用JavaScript将一些验证应用到第一个文本框。这是我第一次尝试这个并遇到麻烦。
我在文本框旁边有一个标签,说明错误,此标签可见性属性设置为False。如果用户失去焦点时文本框为空,我希望标签可见性变为真。
为此,我在文本框的标签中使用了onBlur选项。然后它调用JavaScript函数并将标签设置为Visible但不是。我已经通过使用警报来测试是否正在进入该功能,这是有效的。问题似乎是试图改变标签的可见性属性。
以下是我的代码部分:
JavaScript:
function myRegEx(frm) {
if ( boxUsername.value == "" ) {
invalidUser.visible = True;
return false;
}
}
表格:
<asp:TextBox onblur="return myRegEx(this)" id="boxUsername" runat="server" Width="200px"></asp:TextBox>
<asp:Label id="invalidUser" runat="server" visible="False" forecolor="Red" text="* Username must be alphanumeric with no special characters"></asp:Label>
任何帮助都会很棒。
答案 0 :(得分:0)
这是另一个StackOverflow问题,它有你的答案:
答案 1 :(得分:0)
我建议您使用ASP.Net验证控件,特别是RequiredFieldValidator。
这将为您处理标签,并确保在客户端(javascript)和服务器端(vb)都进行正确的验证。
答案 2 :(得分:0)
您正在使用已弃用的仅限IE的功能,该功能可将带ID的元素转换为全局变量
您应该拨打document.getElemenntById
。
此外,您需要使用ASP.Net生成的客户端ID。
最后,要隐藏元素,您需要使用CSS; HTML没有visible
属性。
例如:
document.getElementById("<%=invalidUser.ClientID %>").style.display = "none";
但是,您应该使用ASP.Net的内置验证功能。
答案 3 :(得分:0)
为什么不像这样使用ASP.NET RequiredFieldValidator:
<asp:TextBox onblur="return myRegEx(this)" id="boxUsername" runat="server" Width="200px"></asp:TextBox>
<asp:RequiredFieldValidator ControlToValidate="boxUsername" Display="Dynamic" ErrorMessage="Please enter a value" />
如果这太简单了,那么你可以使用RegularExpressionValidator:
<asp:TextBox onblur="return myRegEx(this)" id="boxUsername" runat="server" Width="200px"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Please enter alpha numeric characters." ValidationExpression="[my reg ex]" ControlToValidate="boxUsername" Display="Dynamic" />