Javascript 日期选择器不支持表单重置

Javascript 日期选择器不支持表单重置,javascript,jquery,asp.net-core,kendo-ui,telerik,Javascript,Jquery,Asp.net Core,Kendo Ui,Telerik,我有一个asp.net表单,里面有各种文本框和剑道日期选择器。我允许用户填写表单,如果他们决定重新开始,我会为他们设置一个重置按钮 “重置”按钮应将表单重置为其原始模型数据。为了明确起见,我不想将表单重置为空白值,我想将所有输入重置为其原始模型值 这对文本框很有效,但是在按下重置按钮后,日期选择器只显示一个d,而不是原始模型值 我使用以下javascript/jquery重置表单: $(this).closest('form')[0].reset(); 以下是我使用datepicker提取的表

我有一个asp.net表单,里面有各种文本框和剑道日期选择器。我允许用户填写表单,如果他们决定重新开始,我会为他们设置一个重置按钮

“重置”按钮应将表单重置为其原始模型数据。为了明确起见,我不想将表单重置为空白值,我想将所有输入重置为其原始模型值

这对文本框很有效,但是在按下重置按钮后,日期选择器只显示一个d,而不是原始模型值

我使用以下javascript/jquery重置表单:

$(this).closest('form')[0].reset();
以下是我使用datepicker提取的表单代码:

<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代码,因此我也发布了我尝试使用代码示例的

并使用:

$("#FormID").trigger("reset");
它可以成功地将datetimepicker重置为默认模型值:

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

因此,作为一种解决方法,您可以添加隐藏字段:

$("#monthpicker").val("November 2013")
<input type="hidden" id="DeOrderDate" asp-for="OrderDate"/>

这应该适用于特殊情况。

很抱歉,我认为这是可行的,但我的测试中出现了错误。使用您提供的代码对我做了同样的事情,它只是将datepicker重置为值d,而不是原始模型值。我检查了您建议的示例应用程序,它按照您描述的方式工作。我的模型与示例应用程序之间的区别在于,我的模型用[DataTypeDataType.Date]public DateTime ManufactureDate{get;set;}注释。删除此项修复了问题,但我无法找出原因。另外,将格式字符串更改为dd/MM/yyyy也会使其填充。@Reafidy不确定,或者您可以尝试解决方法作为我编辑的ReplyTanks,我不确定您的解决方法是否合适。我在一个动态生成的页面上有多达100个日期选择器。不过我会调查的。似乎在更改格式时,datepicker会用格式覆盖value属性,因此最终的结果是value=dd/MM/yyyy。因此,重置将恢复到此状态。看起来很奇怪。
<input type="hidden" id="DeOrderDate" asp-for="OrderDate"/>
$("#FormID").trigger("reset");
$("#OrderDate").data('kendoDatePicker').value($("#DeOrderDate").val())