通过JavaScript编辑标签文本值

通过JavaScript编辑标签文本值

问题描述:

我有一个简单的VB/ASP.NET窗体包含两个文本框,我试图应用一些验证到使用JavaScript的第一个文本框。这是我第一次尝试这个,并且遇到了一些麻烦。通过JavaScript编辑标签文本值

我在文本框旁边有一个标签,指出错误,此标签可见性属性设置为False。如果在用户失去焦点时文本框为空,我希望标签可见性变为真。

为此,我在文本框的标记中使用了onBlur选项。然后它调用JavaScript函数,并应将标签设置为可见,但不是。我已经通过使用警报来测试它是否正在进入该功能,并且可行。这个问题似乎试图改变标签的可见性属性。

这里是我的代码部分:

中的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> 

任何帮助将是辉煌的。

这里还有一个问题,StackOverflow上具有为你解答:

Change visibility of ASP.NET label with JavaScript

+0

辉煌谢谢你肯。 – Ronnie 2010-03-22 01:07:30

我建议你使用和ASP.Net验证控制,特别是RequiredFieldValidator

这将照顾你的标签,并确保正确的验证发生在客户端(javascript)和服务器端(vb)。

您正在使用已弃用的仅限IE的功能,该功能可将ID元素转换为全局变量。
您应改为拨打document.getElemenntById

此外,您需要使用ASP.Net生成的客户端ID。

最后,要隐藏一个元素,您需要使用CSS; HTML没有visible属性。

例如:

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

但是,你应该使用ASP.Net内置的验证功能来代替。

为什么不使用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" />