J'ai trois zones de texte sur un formulaire web asp.net, comment/puis-je utiliser un validateur de champ obligatoire pour s'assurer qu'au moins l'un d'entre eux contient du texte?asp.net champ de validation obligatoire pour au moins une zone de texte contient du texte
Répondre
J'utiliser un CustomFieldValidator comme ceci:
<asp:CustomValidator runat="server"
ID="MyCustomValidator"
ValidationGroup="YOUR_VALIDATION_GROUP_NAME"
OnServerValidate="MyCustomValidator_ServerValidate"
ErrorMessage="At least one textbox needs to be filled in." />
puis dans votre codebehind vous avez:
protected void MyCustomValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
if (/* one of three textboxes has text*/)
args.IsValid = true;
else
args.IsValid = false;
}
Vous pouvez également ajouter un composant côté client à cette validation, et de le rendre sexy en l'étendant avec le contrôle ValidatorCalloutExtender de AJAX toolkit.
Je n'aimais pas que cela provoque une publication, donc j'ai juste fini par définir le ClientIDMode = "statique" et coder en dur les valeurs dans une fonction JS. Je n'étais pas vraiment intéressé à faire des messages d'erreur ou quoi que ce soit; Je voulais juste que le bouton ne fasse rien. Merci pour le code. Il a totalement fonctionné, son utilisation juste d'un CustomValidator était le mauvais choix. Ce qui est ma faute, pas le tien. – Shawn
J'ai trouvé que cela ne déclencherait pas la validation avec un ValidationGroup spécifié. Une fois que j'ai sorti ça, ça a marché comme un charme. – techturtle
Je ne pense pas que RequiredFieldValidator répond à vos besoins. Je voudrais aller avec un CustomValidator
affecté à l'un de vos champs et les vérifier manuellement tous quand il se déclenche.
<script>
function doCustomValidate(source, args) {
args.IsValid = false;
if (document.getElementById('<% =TextBox1.ClientID %>').value.length > 0) {
args.IsValid = true;
}
if (document.getElementById('<% =TextBox2.ClientID %>').value.length > 0) {
args.IsValid = true;
}
if (document.getElementById('<% =TextBox3.ClientID %>').value.length > 0) {
args.IsValid = true;
}
}
</script>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server"
ErrorMessage="have to fill at least 1 field"
ControlToValidate="TextBox1"
ClientValidationFunction="doCustomValidate"
ValidateEmptyText="true" ></asp:CustomValidator><br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br />
Ne pas oublier de mettre ValidateEmptyText="true"
comme valeur par défaut est de sauter des champs vides. assurez-vous de créer une méthode de validation similaire côté serveur.
- 1. Validation du nombre dans le valideur de champ obligatoire
- 2. Utilisation du validateur de champ obligatoire pour désactiver ListBox
- 3. Validation de champ obligatoire conditionnelle dans un ListView ASP.net
- 4. jQuery Validation pour la zone de texte
- 5. Validation côté client d'une zone de texte
- 6. Date de validation pour une zone de texte
- 7. Mise au point du champ de texte
- 8. Modifier la classe css de la zone de texte lorsque la validation ASP.NET échoue
- 9. Validation côté client seulement la moitié fonctionne, fonctionne pour une zone de texte, pas une zone de texte
- 10. REGEX - correspondant ** sur au moins une ligne dans une zone de texte
- 11. C# Validation d'entrée pour une zone de texte: float
- 12. Validation de la zone de texte
- 13. formulaire de validation du message dans la zone de texte
- 14. En zone de texte asp.net: saisir du texte et il apparaît instantanément dans une autre zone de texte
- 15. Zone de texte ASP.NET et expression régulière
- 16. Validateur de champ obligatoire
- 17. Validation dans MVC zone de texte
- 18. Requiert des données dans au moins une zone de texte sur la page de recherche
- 19. Autorisation du texte HTML dans la zone de texte ASP sans validation validateRequest = false
- 20. Windows forms Validation de la zone de texte
- 21. Zone de texte pour l'édition de texte enrichi
- 22. Comment coller du texte enrichi dans une zone de texte?
- 23. Comment rendre du texte sous une zone de texte?
- 24. Limitation du validateur de champ obligatoire à un jeu de contrôles (ASP.NET)
- 25. Insérer du texte de champ de saisie dans la zone de texte avec JavaScript
- 26. réglage du texte dans la zone de texte quand il contient des balises html
- 27. Modification du texte de validation-texte du fichier de ressources
- 28. Jquery comment - zone de texte asp.net change met à jour une autre zone de texte
- 29. définir un texte de zone de texte égal au texte de la zone de texte sur un formulaire différent?
- 30. Insérer du texte au curseur dans une zone de texte, avec Javascript
duplication possible de [zone de texte de validation asp.net - au moins une zone de texte doit contenir des données] (http://stackoverflow.com/questions/1443545/asp-net-validate-textbox-at-least-one- text-box-must-have-data-in) –