Ненавязчивая проверка для встроенного средства выбора даты не работает, отлично работает для не встроенного средства выбора даты

Я не использовал jquery.ui, потому что мне нужно было выбрать целую неделю и несколько дат в разных условиях, поэтому я использую средство выбора даты Кита Вудав EditorTemplate для полей даты:

    @model Nullable
    @{
        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 })
    

Проверка работает отлично при использовании текстового поля и наличие «всплывающего» средства выбора даты; но что я действительно хочу, так это использовать встроенный указатель даты, но я не могу заставить проверку работать в этих условиях:

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

    
@Html.Hidden("", dt, new { @class = "datefield", @id = id })

Вот фрагмент моей пользовательской проверки на стороне клиента:

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

А вот определение поля DateTime в моем классе данных:

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

Я понимаю, что должен добавить onSelect для средства выбора даты, чтобы заполнить скрытое поле датой (датами), но независимо от этого я должен получить сообщение об ошибке, когда значение скрытого поля пусто, но это не проверка. HTML-разметка отображается следующим образом:

    

Я использую следующие библиотеки:

    
    
        
    
    
    
    

Я нашел похожий вопрос без ответа, похоже, у разработчика та же проблема, но нет опубликованного решения . Есть идеи, где я ошибаюсь?

5
задан Community 23 May 2017 в 12:04
поделиться