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: 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"? P> p>
9 Réponses :
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 #");
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.
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 code> 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.
N'EST PAS DOCUMENT.GETTELEMENTBYID (SENDER.ID) CODE> EMPAL
SENEUR CODE>?
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é.
Pour changer le message d'erreur, faites-le comme suit:
if (!args.IsValid) document.getElementById('<%= cstPhoneNumber.ClientID %>').innerHTML = "* Not a NA Phone #";
Il suffit de supprimer toutes les instances de texte et d'errorormage dans les définitions de tag validateur personnalisées
Ensuite, utilisez puis avec ceci, vous pouvez utiliser une commande de validateur personnalisée et gérer plusieurs conditions d'erreur multiples p>
sender.innertext = "Votre message" code> fonctionnera. P>
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.
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"
Notez que si le message d'erreur est dynamique, HTML pourrait être injecté. Utilisez TextContent code> si vous ne voulez pas que HTML soit rendu.
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');
Essayez ceci ...
Utilisez <asp:CustomValidator ID="cvdPhoneNumber" runat="server" Display="Dynamic" ForeColor="Red" ControlToValidate="txtPhoneNumber" ClientValidationFunction="validatePhoneNumber" ErrorMessage="" />