通过JavaScript编辑标签文本值

时间:2010-03-22 01:00:16

标签: javascript asp.net vb.net forms

我有一个简单的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>

任何帮助都会很棒。

4 个答案:

答案 0 :(得分:0)

这是另一个StackOverflow问题,它有你的答案:

Change visibility of ASP.NET label with JavaScript

答案 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" />