ASP.NET - Validateur Personnalisé avec Dynamique ErrorMessage

Je suis en train d'essayer de s'assurer qu'un nombre entré dans une zone de texte est divisibly par 1.25 ou 1.5. Le wayI décider le temps de mod le nombre par 1.25 ou 1.5 dépend de ce qui est dans une autre liste déroulante. Par exemple: Si l'indice de DDL est de 1, je mod par 1.5, si c'est 2 je mod par 1,25.

Cependant j'ai besoin d'afficher à l'utilisateur de comprendre pourquoi l'erreur a été levée. Le message d'erreur de validation personnalisée doit être quelque chose comme "le Nombre Doit être devisible par 1.25" ou vice versa.

De ce que je peux me dire le code devrait fonctionner. Mais il ne le fait pas. J'ai lu sur un autre forum que la prise de la source et de faire le innerText votre message d'erreur devrait faire l'affaire. Mais je dois être en train de faire quelque chose de mal, quelque part. Quand je marche à travers ma fonction javascript il des étapes à la perfection. Tout simplement pas de message d'erreur. Voici mon code:

<asp:CustomValidator ID="ValidateFinHeight" runat="server" CssClass="NormLabel" 
Display="Dynamic" 
ControlToValidate="txtFinHeight" 
ClientValidationFunction="validateFinHeight"></asp:CustomValidator>

<script type="text/javascript" language="javascript" >
function validateFinHeight(source, arguments)
{
  var ddl = document.getElementById('cboTubeDia');
  var ddlSelIndex = ddl.selectedIndex

  switch(ddlSelIndex)
  {
    case 0:
        arguments.isValid = true;
        return;     
    case 1:
        if(arguments.value%1.25 != 0)
        {
            source.innerText = "Height must be divisibly by 1.25";
            arguments.isValid = false;
            return;
        }
        else
        {
            arguments.isValid = true;
            return;
        }
    case 2:
        if(arguments.value%1.5 != 0)
        {
            source.innerText = "Height must be divisibly by 1.5";
            arguments.isValid = false;
            return;
        }
        else 
        {
            arguments.isValid = true;
            return;
        } 
  }
}
</script>
Vous mentionnez que le nombre est de 1,25 lorsque selectedindex est de 2 et 1,5 lorsque selectedindex est de 1, mais dans ta fonction javascript vous valider vice versa. Pas d'importance pour la réponse à votre question.

OriginalL'auteur Johnrad | 2011-01-04