6
votes

Comment puis-je réécrire l'ERRORMESSAGE pour un contrôle CustomValidator sur le client?

J'ai un contournvalidator valide un numéro de téléphone pour plusieurs systèmes de numérotation téléphonique différents. Le JavaScript côté client ressemble à ceci: xxx

La validation réelle a lieu correctement et le CustomValidator a la propriété ISVALID correcte à tout moment. L'expéditeur.Errormessage semble toutefois être réécrit juste après que cette fonction a appelé la valeur par défaut. Comment puis-je modifier la valeur errorressage et le faire "bâton"?


0 commentaires

9 Réponses :


2
votes

Il ressemble à votre utilisation de jQuery afin que vous puissiez définir le message d'erreur comme celui-ci:

$(sender).text("* Not a NA Phone #");


3 commentaires

Essayé ça, mais non. Creusez autour de vous, je trouve que l'expéditeur n'est pas l'élément de la plage, mais est plutôt un autre objet DOM qui n'affiche rien. Merci quand même.


C'est étrange quand j'ai essayé ceci à la maison, l'expéditeur était la période. Comment l'objet de l'expéditeur a-t-il été lié à la portée? Vous pourrez peut-être accéder à l'étendue de l'expéditeur. Sinon, avez-vous un moyen d'obtenir l'identifiant de l'espace dans votre script? Si oui, vous pourriez toujours le faire. Désolé, je ne peux pas être plus utile pour le moment que je suis au travail.


Un certain nombre de sites Web indiquent que la construction de «Sender.ErrorMessage» est la voie à suivre, alors je soupçonne que j'ai fait quelque chose de mal dans le grand schéma de choses qui empêchent toute de ces méthodes de travailler. Je suppose que je devrai coder une page de test et voir si une version plus simple n'agit pas comme si tout le monde semble s'attendre.



0
votes

Je pense que le problème est qu'il n'y a pas de propriété «errorormessage» du côté du client. Le validateur personnalisé rend une balise pour afficher le message d'erreur avec un identifiant correspondant à la propriété ID du contrôle de validateur personnalisé. Pour définir le texte affiché lorsque la validation échoue, vous devez faire quelque chose comme ça. XXX


2 commentaires

N'EST PAS DOCUMENT.GETTELEMENTBYID (SENDER.ID) EMPAL SENEUR ?


C'est en fait comment j'ai commencé à faire cela, et cela n'a pas fonctionné non plus. Comme cela se produit, le membre JS Sender.ErrorMessage a le même contenu que le CustomValidator.Errormessage lors de la première charge de la page, mais modifier ce contenu ne modifie pas le message affiché.



3
votes

Pour changer le message d'erreur, faites-le comme suit:

if (!args.IsValid) document.getElementById('<%= cstPhoneNumber.ClientID %>').innerHTML = "* Not a NA Phone #";


0 commentaires

0
votes

Il suffit de supprimer toutes les instances de texte et d'errorormage dans les définitions de tag validateur personnalisées Ensuite, utilisez xxx

puis avec ceci, vous pouvez utiliser une commande de validateur personnalisée et gérer plusieurs conditions d'erreur multiples xxx < p> J'espère que cela aide


0 commentaires

1
votes

sender.innertext = "Votre message" fonctionnera.


0 commentaires

4
votes
function dateofbirth(sender, args) {

    var dtcDOB = document.getElementById('<%= dtcDOB.ClientID %>');

    var dob = new Date(dtcDOB.value);
    var currDate = new Date();

    if (dtcDOB.value == "") {
        args.IsValid = false;
        sender.textContent = "Provide DOB.";
        return;
    }

    args.IsValid = true;
}
Try sender.textContent = "your err msg".
It worked for me.

0 commentaires

3
votes

Le meilleur moyen de modifier le message d'erreur d'un contrôle de validateur avec l'image est le suivant:

sender.innerHTML = "YOUR HTML WITH ANYTHING COME HERE"


1 commentaires

Notez que si le message d'erreur est dynamique, HTML pourrait être injecté. Utilisez TextContent si vous ne voulez pas que HTML soit rendu.



0
votes

Développement de la réponse à @andy, à l'aide de jQuery:

Modifier le message texte (Afficher dans le formulaire): P>

$('#<%=this.[Validator].ClientID%>').attr('errormessage', 'Text to show');


0 commentaires

0
votes

Essayez ceci ...

Utilisez Sender.textContext strong> dans le JavaScript pour le message d'erreur et configurez votre CustomValidator comme tel: P>

<asp:CustomValidator ID="cvdPhoneNumber" runat="server" Display="Dynamic" ForeColor="Red" ControlToValidate="txtPhoneNumber" ClientValidationFunction="validatePhoneNumber" ErrorMessage=""  />


0 commentaires