Salve a tutti,
ho questo codice in 2 pagine

pagina1

codice:
    $(document).ready(function (e){
        $("#frmContact").on('submit',(function(e){
            e.preventDefault();
            $("#mail-status").hide();
            $('#send-message').hide();
            $('#loader-icon').show();
            $.ajax({
                url: "contact.php",
                type: "POST",
                dataType:'json',
                data: {
                "name":$('input[name="name"]').val(),
                "surname":$('input[name="surname"]').val(),
                "address":$('input[name="address"]').val(),
                "city":$('input[name="city"]').val(),
                "phone":$('input[name="phone"]').val(),
                "phone2":$('input[name="phone2"]').val(),
                "name2":$('input[name="name2"]').val(),
                "surname2":$('input[name="surname2"]').val(),
                "email":$('input[name="email"]').val(),
                "content":$('textarea[name="content"]').val(),
                "consenso":$('checkbox[name="consenso"]').val(),
                "g-recaptcha-response":$('textarea[id="g-recaptcha-response"]').val()},                
                success: function(response){
                $("#mail-status").show();
                $('#loader-icon').hide();
                if(response.type == "error") {
                    $('#send-message').show();
                    $("#mail-status").attr("class","error");                
                } else if(response.type == "message"){
                    $('#send-message').hide();
                    $("#mail-status").attr("class","success");                            
                }
                $("#mail-status").html(response.text);    
                },
                error: function(){} 
            });
        }));
    });
codice HTML:
<input type="checkbox" id="consenso" name="consenso" value="consenso" [PHP] echo $consenso;[/PHP] class="required consenso" aria-required="true" required>

pagina2
Codice PHP:
$consenso filter_var($_POST["consenso"], FILTER_SANITIZE_STRING); 
Codice PHP:
if (isset($_POST['consenso'])) {        $consenso='checked="yes"';        } else {         $consenso='';         } 
Quando passo il form con il submit, viene inviato lo stesso anche se non viene selezionato il checkbox che deve essere obbligatorio.
Grazie