Kendo UI datepicker与Chrome 56不兼容

Iva*_*nco 16 c# google-chrome datepicker kendo-ui knockout.js

在将Chrome更新到其上一个版本56.0.2924.76(64位)后,我们的Kendo datepickers开始无法正常工作.

所有日期选择器都使用ViewModels绑定,现在它们不显示它们的值.如果我们检查它们,我们会看到设置的值,但它没有显示.

例如:

@(Html.Kendo().DatePicker()
                    .Name("DateFrom")
                    .Start(CalendarView.Month)
                    .Depth(CalendarView.Month)
                    .Format("MM/dd/yyyy")
                    .HtmlAttributes(new { @id = "ClosingStartDate", @placeholder = "enter date from", @class = "masked-date" }))
Run Code Online (Sandbox Code Playgroud)

如果我使用Chrome的开发人员工具检查此元素,我会得到以下结果:

<input class="k-input masked-date" id="ClosingStartDate" name="DateFrom" placeholder="enter date from" type="text" value="12/21/2016" data-role="datepicker" readonly="" disabled="disabled" maxlength="20" style="width: 100%;">
Run Code Online (Sandbox Code Playgroud)

但它就是这样的

当我们用KnockOut绑定属性值时,所有日期选择器都可以正常工作.

我们的剑道版本是:Kendo UI Complete v2012.2.913

还有另一种绑定它的方法吗?我们应该使用Chrome v.56改变什么?

She*_*iño 26

目前,DatePicker包装器呈现INPUT元素类型"date".当Kendo DatePicker在客户端上初始化时,它会将输入的类型更改为"text".因此,我们避免了"日期"输入的本地呈现.如果禁用JavaScript,则不会初始化Kendo DatePicker,并且输入可以用作本机.

遗憾的是,某些本机支持"日期"类型(特别是Chrome)的浏览器会验证设置值,如果格式不正确([RFC 3339]中定义的有效完整日期),则会被忽略.现在,您可以将输入的类型永久更改为"text",并避免与本机输入相关的任何问题:

@(Html.Kendo().DatePicker()
.Name("datepicker")
.Value("10/10/2011")
.HtmlAttributes(new { type = "text" }))
Run Code Online (Sandbox Code Playgroud)

我只是type="text"根据kendo UI论坛中的建议添加属性,它对我有用.

这是一个链接:http://www.telerik.com/forums/date-field-not-rendering-correct-in-browsers-that-support-html-5