【问题标题】:DatePicker format does not work if set by input element如果由输入元素设置 DatePicker 格式不起作用
【发布时间】:2012-12-06 07:20:33
【问题描述】:

我有实时更新输入值的可观察对象。问题是 Kendo DatePicker 不知道输入值何时更新,因此不会进行任何格式化。可以在此处查看此行为的示例:http://jsfiddle.net/basememara/kMkSd/

$("#sampleDate1, #sampleDate2").kendoDatePicker({
    format: "dd MMM yyyy",
    parseFormats: ["yyyy/MM/dd"]
});
$("#sampleDate1").val('2012/09/25') //no formatting happens => 2012/09/25
$("#sampleDate2").data('kendoDatePicker').value('2012/09/25') //works => 25 Sep 2012

DatePicker 希望我始终通过 Kendo 对象更新值。如何告诉 DatePicker 输入值已更新(但这不应该自动完成)?

【问题讨论】:

  • 那么,这里有什么问题?只需通过.data('kendoDatePicker')。该字段未格式化,因为显然格式化函数未注册到该字段的onchange 事件。为什么?因为这会创建一个循环:通过代码设置值 --> 值改变(事件) --> kendo 格式化它 --> 值改变(事件) --> kendo 格式化它,等等。
  • 问题是我什至没有更新输入值。这由 JS 框架通过可观察类(实时绑定)自动发生。我可以根据需要在代码中更新类对象,它会自动实时反映到输入值。它甚至不知道剑道的存在。我只坚持做这样的解决方法(我不想这样做): $("#sampleDate2").data('kendoDatePicker').value(this.value)
  • 我明白了。在那种情况下,恐怕我帮不上什么忙。
  • 如果我只能重新触发解析功能,我就可以了。

标签: javascript jquery formatting datepicker kendo-ui


【解决方案1】:

这应该会重新触发格式化功能:

$("#sampleDate2").data('kendoDatePicker').value($("#sampleDate2").val())
//Set the contents of #sampleDate2 to it's contents, through the kendoDatePicker

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多