通过JavaScript编辑标签文本值

通过JavaScript编辑标签文本值,javascript,asp.net,vb.net,forms,Javascript,Asp.net,Vb.net,Forms,我有一个简单的VB/ASP.NET表单,其中包含两个文本框,我试图使用JavaScript对第一个文本框应用一些验证。这是我第一次尝试这样做,我遇到了一些麻烦 我在文本框旁边有一个标签说明错误,该标签可见性属性设置为False。如果用户失去焦点时文本框为空,我希望标签可见性变为真 为此,我在文本框的标记中使用了onBlur选项。然后它调用JavaScript函数,并应将标签设置为可见,但它不可见。我已经测试过了,看看它是否通过使用警报来进入功能,这是否有效。问题似乎是试图改变标签的可见性属性 以

我有一个简单的VB/ASP.NET表单,其中包含两个文本框,我试图使用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>


任何帮助都会很好

下面是另一个有答案的问题:


我建议您使用和ASP.Net验证控件,特别是


这将为您保留标签,并确保客户端(javascript)和服务器端(vb)都进行了正确的验证。

您使用的是不推荐使用的IE专用功能,该功能将带有ID的元素转换为全局变量。
您应该调用
document.getElementById

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

最后,要隐藏元素,需要使用CSS;HTML没有可见的
属性

例如:

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


但是,您应该使用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" />