rad_hass
Messages postés7Date d'inscriptionlundi 22 novembre 2004StatutMembreDernière intervention30 septembre 2008
-
29 sept. 2008 à 15:30
rad_hass
Messages postés7Date d'inscriptionlundi 22 novembre 2004StatutMembreDernière intervention30 septembre 2008
-
30 sept. 2008 à 09:29
Bonjour,
Dans l'absolue je voudrais que quand je mets une partie de mon
formulaire à display= "none", les validateurs associés soit désactivé.
Pour le faire, j'ai une fonction JavaScript qui rends visible/invisible un de mes blocs selon sélection, si je m'arrête là, j'aurai les validators du bloc invisible toujours actif. Donc ce que je voudrais c'est les décativés, une piste qui m'a été donné c'est d'utiliser ValidatorEnable , ce que j'ai fais, mais le fonctionnement n'est pas celui attendu :
Code :
function selectChangeVisibleBloc(ddl, li_1, li_2)
{
var valeur = ddl[ddl.selectedIndex].value;
if(valeur == "val")
{
if(li_1!=null){li_1.style.display="block";}
if(li_2!=null){li_2.style.display="none";}
ValidationGroupEnable("NpValidationGroup", false);
ValidationGroupEnable("PValidationGroup", true);
}
else
{
if(li_Peugeot!=null){li_Peugeot.style.display="none";}
if(li_NotPeugeot!=null){li_NotPeugeot.style.display="block";}
ValidationGroupEnable("PValidationGroup", false);
ValidationGroupEnable("NpValidationGroup", true);
}
}
function HasPageValidators()
{
var hasValidators = false;
<!-- END TEMPLATE: bbcode_code -->les validators sont actifs seulement
lors du changement de sélection, quand je clique sur le bouton (submit), aucun
validators des deux groupes n'est actif ...
rad_hass
Messages postés7Date d'inscriptionlundi 22 novembre 2004StatutMembreDernière intervention30 septembre 2008 29 sept. 2008 à 18:05
Merci pour ta réponse.
Je crois que y a quelques choses qui m'a échapé, parceque j'utilise déjà ValidationGroup.
Mais peut être tu veux me dire que je dois l'utiliser autrement ? C'est à dire faire la vérification moi même en JS et en Code Behind ?
Avec un
Page.Validate("MyValidationGroup"); (En code-behind)
&
Page_ClientValidate("MyValidationGroup"); (en JS)
"Lorsque vous utilisez des ValidationGroup, il vous sera alors nécessaire de vérifier si votre groupe
de validation est valide avant de rentrer dans le code critique" (Je te cite)
Si je comprends bien, l'utilisation des ValidationGroup nous oblige à appeler la validation nous même ?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 29 sept. 2008 à 20:09
Ce que je comprend c'est que tu as 2 "formulaires" distinct qui doivent être validé indépendemment. La solution à ce problème est donc d'avoir deux zone de validation. Il faut alors deux buttons différents.
Si tu veux, avoir la possibilité d'avoir un button qui valide les 2 formulaires, tu peux alors avoir un 3ème button dans une autre zone de validation qui ne comprend qu'un seul validator : un customvalidator qui validera les 2 zones.
Pour ta question.
Page.IsValid n'est pas toujours suffisant lorsque l'on utilise les validationGroup, cette propriété se rapporte à la valeur de la propriété ValidationGroup (je suis pas sur à 100%) du controle ayant fait le postback, ou toute la page sinon. Il est donc conseillé de faire un Page.Validate("MyGroup") qui affectera la propriété Page.IsValid pour être sur que les controles de validation soient bien valide.
rad_hass
Messages postés7Date d'inscriptionlundi 22 novembre 2004StatutMembreDernière intervention30 septembre 2008 30 sept. 2008 à 09:29
Non en fait, j'ai un unique forumlaire à valider.
Et dans ce formulaire selon certains choix, les parties visible et à valider du formulaire change :
Ex : deux radiobutton, si l'utilisateur change de sélection, un bloc (une partie du formulaire) est mis à display='none' et l'autre à display='block' (dans une fonction JS). Ce que je veux faire en plus c'est de désactiver les validators du bloc invisible et de laisser actif, ceux de l'autre bloc.
Donc selon une sélection dans le même formulaire, y a une partie du formalaire qui varie (et donc la partie à valider aussi).
J'espère que j'étais un peu plus claire cette fois.