2016-09-06 2 views
0

J'ai réussi à inverser la couleur rouge des contrôles si la validation est déclenchée si un champ requis est déclenché. Cependant, je ne peux pas le faire fonctionner pour les contrôles dans les groupes.Asp: Net Champ de virage requis retour couleur rouge pour les groupes de validation

Je possède ce js dans chacune de mes pages juste avant la balise de corps de fermeture

function WebForm_OnSubmit() { 
if (typeof (ValidatorOnSubmit) == "function" && ValidatorOnSubmit() ==false) { 
    for (var i in Page_Validators) { 
    try { 
     var control = document.getElementById(Page_Validators[i].controltovalidate); 
     if (!Page_Validators[i].isvalid) { 
      control.className = "ErrorControl"; 

     } else { 
      control.className = ""; 
     } 
    } catch (e) { 
     var r = 0; 
    } 
} 
return false; 
} 
return true; 
} 

la classe suivante pour le css style d'erreur.

.ErrorControl 
{ 
    background-color: #FBE3E4; 
    border: solid 1px Red; 
} 

Voici un exemple d'un contrôle dans un groupe de validation

<asp:RequiredFieldValidator runat="server" ID="vldTelephoneNumber" ControlToValidate="txtTelephoneNumber" ValidationGroup="ResellerGroup"></asp:RequiredFieldValidator> 

Toute aide à ce serait apprécié

Répondre

1

Ceci est la fonction javascript j'utiliser pour changer la couleur de la bordure et le fond de l'élément qui est en cours de validation ou est considéré comme invalide lorsque vous cliquez sur le bouton Soumettre. Il ne fera que transformer l'élément en rouge du groupe de validation spécifique, pas tous les éléments qui ont un validateur.

De même, les couleurs redeviennent normales lorsque la validation a réussi et que le focus est perdu.

<script type="text/javascript"> 
    $(document).ready(function() { 
     if (typeof (Page_Validators) !== 'undefined') { 
      //check the elements at a regular interval to change the color back to normal 
      setInterval(function() { fieldValidators() }, 100); 
     } 
    }); 

    function fieldValidators() { 
     if (typeof (Page_Validators) !== 'undefined') { 
      for (var i = 0; i < Page_Validators.length; i++) { 
       var val = Page_Validators[i]; 
       var ctrl = document.getElementById(val.controltovalidate); 
       if (ctrl != null && ctrl.style != null) { 
        if (!val.isvalid) { 
         $(ctrl).addClass("ErrorControl"); 
        } else if ($(ctrl).hasClass("ErrorControl")) { 
         $(ctrl).removeClass("ErrorControl"); 
        } 
       } 
      } 
     } 
    } 
</script> 
+0

merci pour cela. Comment puis-je appeler ceci sur la page soumettre. Pour le moment, cela fonctionne bien lorsque vous quittez un champ requis qui doit être complété. – chrisblue13

+0

est également là un moyen de le faire pour les listes déroulantes merci encore – chrisblue13

+0

Pas besoin, cela fonctionnera pour chaque élément validé sur la page (y compris les listes déroulantes). Collez-le simplement dans le code HTML et vous verrez. Si l'élément est valide, il récupérera sa couleur normale en supprimant la classe 'ErrorControl' lorsque le focus est perdu. – VDWWD