2010-03-22 3 views
0

J'ai un simple formulaire VB/ASP.NET contenant deux zones de texte, j'essaie d'appliquer une validation à la première zone de texte en utilisant JavaScript. C'est la première fois que j'ai essayé cela et j'ai quelques problèmes.Modification d'une valeur de texte d'étiquettes via JavaScript

J'ai une étiquette à côté de la zone de texte indiquant une erreur, cette propriété de visibilité des étiquettes est définie sur False. Je souhaite que la visibilité des étiquettes devienne true si la zone de texte est vide lorsque l'utilisateur perd le focus. Pour cela, j'ai utilisé l'option onBlur dans les balises de la zone de texte. Il appelle ensuite la fonction JavaScript et doit définir l'étiquette sur Visible, mais ce n'est pas le cas. J'ai testé pour voir si elle entre dans la fonction en utilisant une alerte à la place et cela fonctionne. Le problème semble être d'essayer de modifier la propriété de visibilité de l'étiquette.

Voici la partie de mon code:

Le JavaScript:

function myRegEx(frm) { 

    if (boxUsername.value == "") { 

     invalidUser.visible = True; 
     return false; 

    } 
}  

La forme:

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

Toute aide serait génial.

Répondre

0

Je vous suggère d'utiliser et de contrôle de validation ASP.Net, en particulier la RequiredFieldValidator. Cela prendra soin de l'étiquette pour vous, et assurez-vous que la validation correcte se produit à la fois côté client (javascript) et côté serveur (vb).

0

Vous utilisez la fonction obsolète IE uniquement qui transforme les éléments avec des ID en variables globales.
Vous devriez appeler le document.getElemenntById à la place.

De plus, vous devez utiliser les ID client générés par ASP.Net.

Enfin, pour cacher un élément, vous devez utiliser CSS; HTML n'a pas de propriété visible.

Par exemple:

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

Cependant, vous devez utiliser ASP.Net de fonctionnalité intégrée de validation à la place.

0

Pourquoi ne pas utiliser un ASP.NET RequiredFieldValidator comme ceci:

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

Si cela est trop simpliste, vous pouvez alors utiliser un 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" /> 
Questions connexes