Knockout.js在Google Chrome中输入日期数据绑定

时间:2013-05-10 10:51:17

标签: javascript jquery html5 google-chrome knockout.js

我很难在Google Chrome中为type="date"的输入设置值:http://jsfiddle.net/ruslans/gNv7H/

<input data-bind="value: dateString" type="date"></input>

var viewModel = {
    someDate: new Date(parseInt("/Date(1367708400000)/".substr(6)))
};
ko.applyBindings(viewModel);

我的日期将来自JSON数据,但首先我需要找出Chrome的日期选择器识别绑定所需的格式。我是否必须使用jQuery选择器并在字段上设置.val()?似乎愚蠢......

修改:根据this article,在Google日期输入中设置值的日期格式必须始终为"yyyy-mm-dd"。这是一个棘手的问题,因为我们在所有没有原生日期选择器的浏览器中使用jQuery日期选择器。

1 个答案:

答案 0 :(得分:12)

您只需按照W3C working draft

中的说明正确格式化value
  

RFC 3339 中定义的有效完整日期,其附加条件是年份组件为四位或更多位数,表示大于0的数字。

     

实施例:   1996年12月19日

所以以下内容应该有效:

var viewModel = {    
    dateString: ko.observable('2002-02-02')
};

演示JSFiddle