Разница между Chrome и IE11 в проверке значения datetime в asp. net mvc 5 - PullRequest
0 голосов
/ 05 августа 2020

У меня есть портал MVC 5, который принудительно запущен в IE11 (для работы с клиентами). Теперь Chrome стал новым стандартом для клиентов, и я исправляюсь, чтобы он работал.

У меня странная ситуация:

Я использую jquery datepicker для полей datetime. В IE11 он работает без проблем. В Chrome я получаю ошибку во время проверки, он не распознает допустимое datetime для таких значений, как 31/12/2020 (12/12/2020 работает, вероятно, потому что вместо этого проверяет формат mm / dd / yy дд / мм / гг).

Модель:

[Display(Name = "ActionPlan_f_data_prevision_close", ResourceType = typeof(Resources.Resource))]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    [DataType(DataType.Date)]
    public virtual DateTime f_data_prevision_close { get; set; }

Просмотр:

<div class="form-group">
        @Html.LabelFor(model => model.f_data_prevision_close, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.f_data_prevision_close, "{0:dd/MM/yyyy}",  new { htmlAttributes = new { @class = "form-control" , @type = "textbox" } })
            @Html.ValidationMessageFor(model => model.f_data_prevision_close, "", new { @class = "text-danger" })
        </div>
    </div>

Кто-нибудь знает, почему в IE11 он работает в то время как Chrome нет ?

Что мне нужно добавить, чтобы jquery валидация проверила правильное значение даты?

Заранее спасибо

Временный патч:

отключение jquery datepicker и с использованием type = "data". Единственный способ пусть пока работает в Chrome. На стороне сервера у меня также был формат даты для SQL, который в этом случае можно отключить, так как valus всегда в формате гггг-мм-дд (https://developers.google.com/web/updates/2012/08/Quick-FAQs-on-input-type-date-in-Google-Chrome?hl=en)

Модель:

[Display(Name = "ActionPlan_f_data_prevision_close", ResourceType = typeof(Resources.Resource))]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
    [DataType(DataType.Date)]
    public virtual DateTime? f_data_prevision_close { get; set; }

Просмотр:

<div class="form-group">
        @Html.LabelFor(model => model.f_data_prevision_close, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.f_data_prevision_close, "{0:yyyy-mm-dd}",  new { htmlAttributes = new { @class = "form-control" , @type = "date", @autocomplete = "off" } })
            @Html.ValidationMessageFor(model => model.f_data_prevision_close, "", new { @class = "text-danger" })
        </div>
    </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...