Plugin de validation jQuery dans les formulaires Web ASP.NET

Je voudrais vraiment utiliser le plugin jQuery Validation dans mon application ASP.NET Web Forms (pas MVC). Je trouve cela plus facile que d’append des validateurs d’asp partout et de définir le contrôle pour valider les champs sur chacun d’eux.

J’ai juste quelques problèmes à la fois lorsque vous définissez la classe comme cette classe = “email requirejs”, ce qui, à mon avis, a quelque chose à voir avec une balise de formulaire dans la balise de formulaire principale.

Je rencontre également des problèmes lors de l’appel de la validation jquery en utilisant les noms qui deviennent mutilés dans un contrôle ASP

// validate signup form on keyup and submit $("#signupForm").validate({ rules: { username: { required: true, minlength: 2 }, }, messages: { username: { required: "Please enter a username", minlength: "username at least 2 characters" }, }. ....... 

car ce

  

rend comme

  

et change le nom. Je peux obtenir le ClientID en utilisant mais cela ne fonctionne pas avec ClientName

Est-ce que quelqu’un a réussi à utiliser le plugin jquery validator avec asp.net? Si oui, qu’en est-il de l’utilisation de plusieurs formulaires, comme si vous utilisiez des groupes de validation séparés?

Vous pouvez extraire la fonction d’ajout de règles , mais en gros, voici ce que vous pouvez faire:

 jQuery(function() { // You can specify some validation options here but not rules and messages jQuery('form').validate(); // Add a custom class to your name mangled input and add rules like this jQuery('.username').rules('add', { required: true, messages: { required: 'Some custom message for the username required field' } }); });  

De cette façon, vous n’avez plus à vous soucier des identifiants de merde générés par le moteur de formulaires Web.

Voici des exemples d’ utilisation du plugin jQuery Validation avec WebForms et l’ émulation du concept de groupe de validation associé. Cela fonctionne plutôt bien une fois que vous avez corrigé quelques problèmes.

 $("#signupForm").validate({ rules: { <%= tbUsername.UniqueID %>: { required: true, minlength: 2 }, }, messages: { <%= tbUsername.UniqueID %>: { required: "Please enter a username", minlength: "username at least 2 characters" }, });  

Vous pouvez vérifier xVal.webForms ici: http://xvalwebforms.codeplex.com/

Testé ce que Darin Dimitrov a dit et cela fonctionne parfaitement, mais si vous ne voulez pas définir une classe spécifique à chacun de vos champs, vous pouvez utiliser les sélecteurs jQuery:

 $('form').validate(); $('input[id$=Username]').rules('add', { required: true, messages: { required: 'Some custom message for the username required field' } });  

La meilleure solution est d’utiliser “<% = tbUsername.UniqueID%>” au lieu de tbUsername dans les règles jQuery.

 $("#signupForm").validate({ rules: { "<%=tbUsername.UniqueID %>": { required: true, minlength: 2 }, }, messages: { "<%=tbUsername.UniqueID %>": { required: "Please enter a username", minlength: "username at least 2 characters" }, }. 

J’ai récemment publié un fichier de correctif pour xVal.WebForms, qui résout le problème de transmission de formulaires multiples sur le groupe de validation ASP.Net bien connu. Ce correctif prend également en charge la propriété ASP.Net CausesValidation.

Yo peut lire à ce sujet ici: http://cmendible.blogspot.com/

Une excellente façon de faire est d’utiliser:

<% = textbox.Name%> ou <% = textbox.ClientId%> chaque fois que vous devez référencer un élément de serveur.

c’est à dire

 var phoneNumb = $('#<%= tPhone.ClientID %>').val(); 

ou

 $("#signupForm").validate({ rules: { <%= username.Name %>: { required: true, minlength: 2 }, }, messages: { <%= username.Name %>: { required: "Please enter a username", minlength: "username at least 2 characters" }, }. 

…….

Pour SharePoint 2010, j’ai trouvé que le chargement de différents usercontrols sous forme de vues (via ajax) fonctionnait si vous déplaçiez javascript dans une bibliothèque et que vous ne pouviez pas utiliser les balises de serveur comme identifiant de contrôle:

par exemple #<%= tPhone.ClientID %>

 $('input[id$=tPhone]').rules('add', { required: true, messages: { required: 'Some custom message for the username required field' } }); 

De plus, si vous chargez dynamicment un contrôle utilisateur via Ajax, vous ne pouvez pas utiliser $ (document) .ready Vous devrez encapsuler le fichier jQuery dans une bibliothèque de fonctions si sa page sur le contrôle utilisateur à (événement côté serveur) se charge correctement. dans le scénario son chargé via Ajax avec le panneau de mise à jour, il ne va pas danser.

Je n’ai pas encore essayé de charger les contrôles utilisateur via jQuery, cela semble lourd et semble charger toute la page, même si elle est peut-être légèrement plus rapide.

Des tests comparant les techniques de chargement ont montré que le panneau de mise à jour était aussi rapide et donnait des tailles de page identiques ou inférieures à celles des autres techniques et qu’il chargeait rapidement ou beaucoup plus de données.

Je recommande d’utiliser jQuery.simple.validator, son validateur simple, léger et personnalisable, compatible avec les formulaires web asp.net, car il peut essentiellement effectuer des validations dans n’importe quel conteneur, pas seulement

https://github.com/v2msoft/jquery.simple.validator

Je vous recommande de vérifier le plugin et la documentation. Usage:

  



Les informations contenues dans cet article m’ont amené à utiliser Control.ClientID lors de la recherche d’une correspondance avec jQuery … Des informations très utiles …