J'ai un formulaire simple avec des zones de texte. Ces zones de texte ont toutes un RequiredFieldValidator. Si le champ 1 est rempli, je dois désactiver le champ RequiredFieldValidator du champ 2 car un seul de ces champs est requis. Quelle est la meilleure façon d'y parvenir?Validez 1 des 2 champs avec les validateurs asp.net
1
A
Répondre
1
Actuellement, je l'ai résolu avec javascript et je peux utiliser validateurs normale.
<script language="javascript" type="text/javascript">
function CheckPhoneValidator(txtEmail)
{
var phoneValidator = document.getElementById('<%= ReqPhone.ClientID %>');
ValidatorEnable(phoneValidator, txtEmail.value == '' ? true : false);
}
function CheckEmailValidator(txtPhone)
{
var emailValidator = document.getElementById('<%= ReqEmail.ClientID %>');
var emailRegexValidator = document.getElementById('<%= RegexEmail.ClientID %>');
ValidatorEnable(emailValidator, txtPhone.value == '' ? true : false);
ValidatorEnable(emailRegexValidator, txtPhone.value == '' ? true : false);
}
Et ce sont les contrôles:
<tr>
<td>
E-mail adres:
</td>
<td>
<asp:TextBox ID="TxtEmail" runat="server" onchange="javascript:CheckPhoneValidator(this);"></asp:TextBox>
<asp:RequiredFieldValidator ID="ReqEmail" runat="server" ControlToValidate="TxtEmail" ErrorMessage="U moet een e-mail invullen als u geen telefoonnummer heeft ingevuld." Display="Dynamic" ValidationGroup="Contact"> </asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegexEmail" runat="server" ControlToValidate="TxtEmail" ErrorMessage="Dit is geen geldig e-mail adres." Display="Dynamic" ValidationExpression="([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})" ValidationGroup="Contact"> </asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
Telefoonnummer:
</td>
<td>
<asp:TextBox ID="TxtPhone" runat="server" onchange="javascript:CheckEmailValidator(this);"></asp:TextBox>
<asp:RequiredFieldValidator ID="ReqPhone" runat="server" ControlToValidate="TxtPhone" ErrorMessage="U moet een telefoonnummer invullen als u geen e-mail heeft ingevuld." Display="Dynamic" ValidationGroup="Contact"> </asp:RequiredFieldValidator>
</td>
</tr>
1
Dans cette situation, il est plus simple d'utiliser CustomValidator avec un gestionnaire de validation côté serveur. Vous devez ajouter le validateur personnalisé aux deux commandes:
<asp:TextBox runat="server" id="control1" />
<asp:CustomValidator runat="server" id="cusCustom1" controltovalidate="control1" onservervalidate="cusCustom_ServerValidate" errormessage="your message" />
<asp:TextBox runat="server" id="control2" />
<asp:CustomValidator runat="server" id="cusCustom2" controltovalidate="control2" onservervalidate="cusCustom_ServerValidate" errormessage="your message" />
et mettre en œuvre le gestionnaire comme
protected void cusCustom_ServerValidate(object sender, ServerValidateEventArgs e)
{
e.IsValid = (!string.IsNullOrempty(control1.Text)) || (!string.IsNullOrempty(control2.Text))
}
Questions connexes
- 1. Validateurs ASP.NET
- 2. Extension des validateurs ASP.NET
- 3. Désactiver les validateurs ASP.NET avec JavaScript
- 4. asp.net UpdatePanel et validateurs problème
- 5. Validez 2 listes en utilisant FluentValidation
- 6. ASP.NET MVC 2 Aperçu 1 Pour prévisualiser 2 Migration
- 7. Réflexions sur asp.net mvc 2 preview 1
- 8. Évitez les entrées majuscules avec jQuery Validez
- 9. 2 Sites Web, 1 Application ASP.NET et planificateur ASP.NET
- 10. Validez l'interface avec IoC
- 11. Gridview SortExpression avec 2 champs
- 12. 1 + 1/2 + 1/3 + --- + 1/n =?
- 13. aide regex pour les validateurs
- 14. Validez les clés uniques avec asp.net mvc et linq to sql?
- 15. Méthode de rappel d'appel pour les validateurs ASP.net
- 16. nhibernate.validator & x.Val & jQuery avec des validateurs personnalisés
- 17. ayant des problèmes avec les validateurs d'infrastructure Zend
- 18. Différence entre Asp.net MVC 1 et Asp.net MVC 2
- 19. Les validateurs Java?
- 20. est-il possible de passer des validateurs asp.net aux validateurs jQuery?
- 21. Sélénium 1 vs 2
- 22. Suppression des validateurs ASP.NET pour les contrôles qui ne sont plus sur la page
- 23. 1 parent avec 2 enfants déroulant
- 24. Validateurs bloquant la navigation dans asp.net ajax
- 25. Qu'est-ce qu'un moyen élégant d'unifier X, Y avec (1,2), (1, -2), (-1,2), (-1, -2), (2,1), (2, -1), (-2,1), (-2, -1)?
- 26. ASP.NET MVC 2: Pourquoi mon application référence-t-elle les deux versions (1 et 2)?
- 27. 2 champs uniques
- 28. Problème avec 2 commande dans 1 vbs
- 29. Validez un nombre avec des milliers décimaux à la hundreth
- 30. 1 Solution, 2 Proejcts, 2 Web.Configs?
Pourquoi se contenter de la manipulation de validation côté serveur? Pourquoi pas le côté client et serveur? – rrrr
Bien sûr. La balise CustomValidator peut avoir un attribut supplémentaire ClientValidationFunction = "customJSValidatingFunction". – PanJanek