javascript - DatePicker 不尊重表单重置

标签 javascript jquery asp.net-core kendo-ui telerik

我有一个带有各种文本框和剑道日期选择器的 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 代码上,所以我还发布了 here

最佳答案

我尝试使用代码示例:https://demos.telerik.com/aspnet-core/datepicker/tag-helper

并使用:

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

它可以成功地将 datetimepicker 重置为默认模型值:

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

但不适用于使用静态值设置的日期时间选择器(更改为格式字符串):

  <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重新绑定(bind)值:

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

这应该适用于特殊场景。

关于javascript - DatePicker 不尊重表单重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53488586/

相关文章:

asp.net-core - ASP.NET Core 实体变更历史

javascript - 存储从 github-pages 上托管的网站接收的 JSON 数据

javascript - 我们的一段 JavaScript 代码有问题

javascript - 如何禁用 Extjs 6.0.0 的节点。树列表?

javascript - 检查哪个数组值也是对象属性

javascript - 更改选择框时计算价格变化

jquery - 谷歌地图 : openInfoWindowHtml with jquery problem

jquery - 如何在动态生成的元素上应用 jquery ui 样式

asp.net-web-api - ASP.NET 5/MVC 6 中 MVC 和 WebAPI 的区别

asp.net-mvc - asp.net core web API文件上传和 "form-data"多个参数传递给方法