我有一个带各种文本框和kendo datepickers的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
答案 0 :(得分:1)
我尝试了代码示例: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>
但是您始终可以设置该值(将模型/视图包的值存储在隐藏字段中):
$("#monthpicker").val("November 2013")
编辑:
作为一种解决方法,您可以添加隐藏字段:
<input type="hidden" id="DeOrderDate" asp-for="OrderDate"/>
然后使用Jquery重新绑定值:
$("#FormID").trigger("reset");
$("#OrderDate").data('kendoDatePicker').value($("#DeOrderDate").val())
这应该适用于特殊情况。