Question

Nous introduisons JQuery dans une application ASP.NET existante et utilisons le plug-in Validate pour que JQuery effectue la validation côté client (nous ne souhaitons pas utiliser l'asp validateurs .net).

Tout fonctionne bien avec le contrôle asp: Button. La validation côté client est déclenchée avant la soumission de la page.

Toutefois, lors de l'utilisation des LinkButton et ImageButton , la page est soumise sans validation préalable du formulaire.

Cela est dû au fait que validate fonctionne avec les boutons qui sont rendus sous la forme Input type = "submit" , tandis que le bouton Image est rendu sous la forme Input type = """. .

Quelqu'un d'autre a vécu cela?

Merci beaucoup pour vos idées et informations sur la manière de les résoudre.

Mise à jour:

Merci beaucoup, vos réponses ont aidé à identifier le problème. il s'avère qu'il y a eu un bogue dans le plugin validate pour JQuery. Nous avons utilisé un correctif pour éviter la validation des champs de saisie masqués, qui utilise parents (). Filter (": hidden") . Cela ne fonctionne pas correctement dans JQuery 1.3.2 . Nous l'avons remplacé par .is (": visible") . Maintenant, le bouton image asp.net fonctionne par défaut!

Update2:

Le LinkButton ne fonctionnait toujours pas. La solution simple consiste à ajouter une fonction de clic renvoyant la valeur false si le formulaire n'est pas valide:

$("#<%= tb.ClientID %>").click(function() {
            return $('form').valid();
        })
Était-ce utile?

La solution

La première suggestion peut encore fonctionner car vous pouvez provoquer le déclenchement de la publication à l'aide de Javascript après la validation.

Le javascript est:

__doPostBack('<%= YourImageControl.UniqueID %>','');

Le second paramètre vide peut être utilisé pour passer des arguments.

Autres conseils

Je ne sais pas si cela va aider, mais tentez votre chance ...

http://docs.jquery.com/Plugins/Validation/validate#options

$("input[type=image]").click(function() {
   $($(this).parents(form)).validate();
});

Vous devrez peut-être remplacer le "formulaire". avec quelque chose de plus spécifique, mais j’ai essayé d’obtenir le plus de précision possible sans savoir comment tout était présenté sur votre page. Répondez si cela vous aide!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top