Valider asp:contrôle de Case à cocher à côté client à l'aide de JavaScript et CustomValidator de contrôle
J'ai deux cases à cocher. J'ai besoin de vérifier qu'au moins l'un d'entre eux est vérifiée avant que le formulaire est soumis.
J'ai un CustomValidator en place sur la page. Il appelle une fonction pour le côté serveur de validation. J'ai besoin d'ajouter une fonction pour la validation côté client.
Le côté client de la fonction doit être écrit en JavaScript.
(Je ne sais pas si cela fait une différence ici, mais il y a aussi d'autres commandes de l'utilisateur sur la page, comme des zones de texte, qui utilisent d'autres non-validateurs personnalisés).
C'est les cases à cocher et le contrôle de validateur personnalisé:
<tr>
<td colspan="3">
<asp:CheckBox id="EmailCourse" name="EmailCourse" runat="server" />
Email course
</td>
</tr>
<tr>
<td colspan="3">
<asp:CheckBox name="SpecialReport" id="SpecialReport" runat="server" />
Special report
</td>
</tr>
<tr>
<td colspan="3">
<asp:CustomValidator id="CustomValidator1" runat="server" ErrorMessage="No checkbox checked" CssClass="error" ClientValidationFunction="validateCheckboxes_ClientValidate" OnServerValidate="validateCheckBoxes_ServerValidate"></asp:CustomValidator>
</td>
</tr>
Et c'est la fonction appelée pour le côté serveur de validation:
protected void validateCheckBoxes_ServerValidate(object source, ServerValidateEventArgs args)
{
if (!EmailCourse.Checked && !SpecialReport.Checked)
args.IsValid = false;
else
args.IsValid = true;
}
J'ai essayé d'écrire le côté client de la fonction validateCheckboxes_ClientValidate:
<script type="text/javascript" language="javascript">
function validateCheckboxes_ClientValidate(oSrc, args) {
alert("inside function");
var ec = document.getElementById("EmailCourse");
var sr = document.getElementById("SpecialReport");
if (!sr.checked && !ec.checked) {
alert("hi it works");
args.IsValid = false;
}
else {
alert("one of them is checked");
args.IsValid = true;
}
}
</script>
Cela ne fonctionne pas. La fonction est appelée, la première alerte est affichée, mais... c'est elle! SI l'instruction ne fonctionne pas.
Comment venir? Que dois-je faire pour changer cela, de sorte que la fonction valide les cases à cocher et la forme ne se soumet pas si invalide?
Vous devez vous connecter pour publier un commentaire.
J'ai essayé ton code et il y A à peine fonctionner correctement dans une page qui dosent l'utilisation de la page maître.
Il pourrait y avoir deux problème est que listés ci-dessous la page maître a modifié le code dans le final de balisage généré comme ci-dessous, dans ce cas, vous devez utiliser
MainContent_EmailCourse
que l'id de votre JSRapport spécial
Ou il pourrait être le navigateur problème spécifique à la question.