CheckBox obbligatorio tramite CustomValidator

Se si vuole obbligare la selezione di una checkbox (tipicamente quella per la verifica della privacy) non è possibile utilizzare il controllo RequiredFieldValidator.

La soluzione è comunque semplice utilizzando il flessibile controllo CustomValidator.

Inserite nell'html due controlli:

  • la CheckBox:
    <asp:CheckBox ID="chkPrivacy" Runat="server" />
  • il controllo CustomValidator
    <asp:CustomValidator ClientValidationFunction="RequiredPrivacy" Runat="server" ID="CustomValidatorchkPrivacy" />

Validazione lato server

La validazione si riduce semplicemente alla verifica della proprietà Checked del controllo CheckBox

private void CustomValidatorchkPrivacy_ServerValidate(object source, ServerValidateEventArgs args)

{

    args.IsValid = true;

    if(chkPrivacy.Checked == false)

        args.IsValid = false;

}

Validazione lato client

 La validazione lato client (facoltativa) si effettua impostando la proprietà ClientValidationFunction del controllo CustomValidator

ClientValidationFunction="RequiredPrivacy"

ed inserendo nell'head il codice Javascript per la validazione. Ad esempio:

<script language="javascript">
function RequiredPrivacy(oSrc, args){
  if (document.all["<%=chkPrivacy.ClientID%>"].checked == false) {
        alert("Devi acconsentire al trattamento dei dati personali");
        args.IsValid = false;
  }
 }
</script>

 Si noti lo script server chkPrivacy.ClientID necessario per passare il corretto ID del controllo a runtime al codice Javascript

Share

Leave a Reply

Your email address will not be published. Required fields are marked *