Le langage .NET (ASP.NET) fait beaucoup de choses pour le programmeur. Il nous donne accès du côté serveur (code behind ou inline) à plein de fonctionnalité sans parler de l’IntelliSense. Il nous permet aussi par le code côté serveur d’ajouter des événements côté client comme “RegisterClientScript” ou “Boutton.Attributes.Add()“.
Cependant comme toute chose il peut y avoir des inconvénients, entre autres lorsque nous ajouter des événements avec “Attributes.Add” et que nous avons aussi un “component” de validation comme le “RequiredField” ou le “RegexValidator“.
Le cas que j’ai vécu avait un bouton avec un Attributes.Add( “onClick” , “valideForm()” ).
Le problème est survenu lorsque j’ai rajouté à ma page les contrôles de validation comme le “RegEx Validator“. À ce moment la page en question m’affiche une erreur Javacript.
Le message d’erreur me dit qu’il me manque un “;” ce qui est surprenant comme la page fonctionnait quelques minutes auparavant. Après un analyse plus poussée du problème (en regardant la source HTML), j’ai découvert que .NET avait rajouté après mon “valideForm” une autre fonction javascript.
Et que comme je n’avais pas mis le “;” à la fin de la linge Attributes.Add( “onClick” , “valideForm();” ) quand il a rajouté sa propre validation la page n’était plus fonctionnel au niveau du javascript.
En conclusion, c’est une bonne pratique, dans tous les langages de programmation, qui agit avec du javascript (Java, PHP, ASP.NET), de mettre le “;” en fin de ligne même s’il n’est pas nécessaire pour le bon fonctionnement du programme.