DatePicker не уважает сброс формы - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть форма asp.net с различными текстовыми полями и датами кендо.Я разрешаю пользователю заполнить форму, и если он решит начать снова, у меня есть кнопка сброса.

Кнопка сброса должна сбросить форму до исходных данных модели.Чтобы было ясно, я не хочу сбрасывать форму на пустые значения, я хочу сбросить все входные данные до их исходных значений модели.

Это хорошо работает для текстовых полей, однако после нажатия кнопки сброса средство выбора даты простоотображает «d», а не исходное значение модели.

Я использую следующий javascript / jquery для сброса формы:

$(this).closest('form')[0].reset();

Вот мой код извлечения формы с указателем даты:

<tr>
    <td><label asp-for="Aircraft.SerialNumber" class="frm-label"></label></td>
    <td>
        <input asp-for="Aircraft.SerialNumber" autocomplete="off" class="k-textbox k-state-disabled" style="width:400px" disabled />
        <span asp-validation-for="Aircraft.SerialNumber" class="text-danger"></span>
    </td>
</tr>
<tr>
    <td><label asp-for="Aircraft.ManufactureDate" class="frm-label"></label> 
    </td>
    <td>
        <kendo-datepicker name="DatePicker" for="Aircraft.ManufactureDate" class=""  style='width: 400px;' />
        <span asp-validation-for="Aircraft.ManufactureDate" class="text-danger"></span>
    </td>
</tr>

Я не уверен, что эта проблема связана с виджетом telerik или моим кодом jquery / javascript, поэтому я также разместил здесь

1 Ответ

0 голосов
/ 27 ноября 2018

Я пробовал с примером кода: https://demos.telerik.com/aspnet-core/datepicker/tag-helper

И используя:

$("#FormID").trigger("reset");

Он может успешно сбросить datetimepicker к значению модели по умолчанию:

  <kendo-datepicker name='datepicker'
                      for="OrderDate" 
                      style='width: 100%;'></kendo-datepicker>

Ноне работает для datetimepicker, который установлен со статическим значением (измените на строку формата):

  <kendo-datepicker name="monthpicker"
                      start="CalendarView.Year"
                      depth="CalendarView.Year"
                      format="MMMM yyyy"
                      value='DateTime.Parse("November 2011")'
                      style="width: 100%;"></kendo-datepicker>

Но вы всегда можете установить значение для этого (сохранить модель значения / viewbag в скрытом поле):

$("#monthpicker").val("November 2013")

РЕДАКТИРОВАНИЕ:

Таким образом, вы можете добавить скрытое поле:

<input type="hidden" id="DeOrderDate" asp-for="OrderDate"/>

, а затем использовать Jquery для повторного связывания значения:

$("#FormID").trigger("reset");
$("#OrderDate").data('kendoDatePicker').value($("#DeOrderDate").val())

Это должно работать для специального сценария.

...