Problème:
Je veux valider quelques cases à cocher ASP.NET utilisant le plugin de validation jquery (à l' adresse: http://bassistance.de/jquery-plugins/jquery-plugin-validation/ )
Ce qu'il est tout au sujet:
Il est impossible de définir l'attribut name de cases à cocher ASP.NET (ou est-il?). Elle sera automatiquement, lorsque le contrôle est rendu et peut être récupéré à l'aide
<%= emailCheckBox.UniqueID %>
Donc, deux cases à cocher suivantes:
<asp:CheckBox runat=server ID=emailAcceptCheckBox />Email<br />
<asp:CheckBox runat=server ID=phoneAcceptCheckBox />Phone<br />
rendra à:
<INPUT id=ctl00_MainContentPlaceHolder_emailAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$emailAcceptCheckBox>
<INPUT id=ctl00_MainContentPlaceHolder_phoneAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$phoneAcceptCheckBox>
Peut-être qu'il est un gâchis de mélanger ASP.NET avec le plugin de validation jquery, mais je préfère le plugin de validation jquery et il fonctionne très bien avec des entrées et d'autres domaines.
Le problème est que le plugin de validation jquery veut regrouper les cases à cocher en utilisant le nom attribut de cases à cocher. Cet attribut de nom doit être égal à toutes les cases et un groupe.
Ce que j'ai fait:
J'ai ajouté une règle à l'aide de toutes les cases jquery:
$(#[id*='AcceptCheckBox']).each(function() { $(this).rules(add, { minchecked: 1 }); });
Et ajouté ma propre règle pour vérifier les cases à cocher:
jQuery.validator.addMethod(minchecked,
function(value, element, param) {
var noOfChecked = $(#[id*='AcceptCheckBox']:checked).length;
return noOfChecked >= param;
},
Error);
(Cette règle sera applicable pour les cases à cocher dont les ID comprennent AcceptCheckBox, mais il est bien dans cet exemple).
Quand j'appelle:
var result = $(#aspnetForm).validate().form();
Il retourne parfaitement si ma validation a réussi ou échoué!
MAIS:
1) Je ne pense pas que ce soit une solution très propre et agréable. Tout meilleurs conseils?
2) Quand je lance validate () forme (). Ça va passer par toutes mes cases à cocher et pour chacun d'eux vérifier toutes les autres cases à cocher. C'est vraiment pas nécessaire. Comment puis-je éviter ça?













