我正在使用MVC Kendo Timepicker。它工作正常,除了我不能格式化军事时间的时间。在我为军事时间添加格式后,一旦我选择了验证未通过的时间,它就会告诉我它必须是日期。有没有办法格式化TimePickerFor以允许军事时间?
@using Kendo.Mvc.UI
@model DateTime?
@(Html.Kendo().TimePickerFor(m=>m)
.Value(@Model)
.Min("05:00")
.Max("00:00")
.Format("{0:HHmm}")
)
更新:这不适用于格式被更改为.Format(“HHmm”)
答案 0 :(得分:2)
好的,感谢剑道人,我找到了答案。脚本可能需要一些工作,具体取决于具体情况。我的TimePickerFor位于编辑器模板中,该模板与其他时间戳和数字文本框位于网格中。只有这种工作方式的事情是,一旦脚本被触发,数字框也使用此脚本进行验证(因此返回$ .isNumeric(input.val())行。希望这有助于其他人。
TimePickerFor Control:
@using Kendo.Mvc.UI
@model DateTime?
@(Html.Kendo().TimePickerFor(m=>m)
.Value(@Model)
.Format("HHmm")
.HtmlAttributes(new{data_format="HHmm"})
.ParseFormats(new[]{"HHmm"})
)
<script>
var originDate = kendo.ui.validator.rules.mvcdate;
kendo.ui.validator.rules.mvcdate = function(input) {
var format = input.attr("data-format");
if (input.val() == "") {
return kendo.parseDate("0000", format);
}
if (format) {
return kendo.parseDate(input.val(), format);
} else {
return $.isNumeric(input.val());
}
};
</script>
答案 1 :(得分:0)
我认为您必须删除花括号并确保它是有效的格式类型。我也不认为0是必要的。
这里有一些格式化文档 http://docs.telerik.com/kendo-ui/getting-started/framework/globalization/dateformatting
@(Html.Kendo().TimePickerFor(m=>m)
.Value(@Model)
.Min("05:00")
.Max("00:00")
.Format("yyyy/MM/dd hh:mm tt")
)
修改: 您的最大值和最小值是否正确?我不知道这在逻辑上是否正确。