La validación discreta para el Selector de fecha en línea no funciona, funciona bien para el Selector de fecha no en línea

No usé el selector de fechas de jquery.ui porque necesitaba seleccionar una semana completa y varias fechas en diferentes condiciones, así que estoy usandoKeith Wood's Selector de fecha en un EditorTemplate para mis campos de Fecha:

    @model Nullable<DateTime>
    @{
        string name = ViewData.TemplateInfo.HtmlFieldPrefix;
        string id = name.Replace(".", "_");
        string dt = Model.HasValue ? String.Format("{0:d}",(string)Model.Value.ToShortDateString()) : string.Empty;
    }        
    @Html.TextBox("", dt, new { @class = "datefield", @type = "date", @id = id })
    <script type="text/javascript">
        $(document).ready(function () {
            $('#@id').datepick({
                renderer: $.datepick.themeRollerRenderer,
                multiSelect: 999
            });
        });    
    </script>

La validación funciona bien cuando se usa un cuadro de texto y se muestra el selector de fecha "emergente"; pero lo que realmente quiero es usar un selector de fecha en línea, pero no puedo obtener la validación para trabajar bajo estas condiciones:

    @model Nullable<DateTime>
    @{
        string name = ViewData.TemplateInfo.HtmlFieldPrefix;
        string id = name.Replace(".", "_");
        string dt = Model.HasValue ? String.Format("{0:d}",(string)Model.Value.ToShortDateString()) : string.Empty;
    }

    <div class="kwdp">
    </div>
    @Html.Hidden("", dt, new { @class = "datefield", @id = id })
    <script type="text/javascript">
        $(document).ready(function () {
            $('.kwdp').datepick({
                renderer: $.datepick.themeRollerRenderer,
                multiSelect: 999
            });
        });    
    </script>

Aquí hay un recorte de mi validación personalizada del lado del cliente:

    form.validate({ 
        rules:{
            StartDate: { 
                required: true, 
                dpDate: true 
            }
        },
        messages: {
            StartDate: 'Please enter a valid date (dd-mm-yyyy)'
        }
    });

Y aquí está la definición del campo DateTime en mi clase de datos:

    [Required]
    [DataType(DataType.Date)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MM-yyyy}")]
    public Nullable<DateTime> StartDate { get; set; }

Entiendo que debo agregar un onSelect para el selector de fechas para rellenar el campo oculto con la fecha (s), pero a pesar de eso, debo obtener un error cuando el valor del campo oculto está vacío, pero no está validando. El marcado html se representa de la siguiente manera:

    <input name="StartDate" class="datefield" id="StartDate" type="hidden" data-val-required="The StartDate field is required." data-val="true" data-val-date="The field StartDate must be a date." value=""/>

Estoy usando las siguientes bibliotecas:

    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>    
    <script src="@Url.Content("~/Scripts/datepick/jquery.datepick.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/datepick/jquery.datepick.ext.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/datepick/jquery.datepick.validation.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.ui.datepicker.validation.min.js")" type="text/javascript"></script>

encontréuna pregunta similar sin respuesta Eso parece que el desarrollador tiene el mismo problema, pero no hay una solución publicada. ¿Alguna idea de a dónde me voy mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta