在我当前的项目中,我使用Bootstrap datepicker来允许用户选择日期.
有一个请求允许人们在datePicker输入中键入日期,而不必手动点击小部件中的日期.
目前,当用户手动编辑日期字符串时,日期选择器将突出显示正确的日期,但不会更新分配给它的变量. (作为注释我使用Knockout.js并使用observable存储日期)
我的想法是,这只会触发changeDate函数,但事实并非如此.
有没有人试图实现这一目标并让它发挥作用?
解决方法:
这是datePicker和dateValue绑定的working jsfiddle和gist,它们独立地绑定到一个observable并相应地更新它.
<div class="input-append date">
<input type="text" data-bind="dateValue: date" />
<span class="add-on datepicker-button" data-bind="datePicker: { date: date }">
<i class="icon-calendar"></i>
</span>
</div>
绑定是用BindingHandlerFactory包装器编写的
1.为每个绑定的元素创建一个处理程序对象,并在元素上使用$.data()存储它.
2.调用处理程序的初始化(元素,上下文)一次.
3.每次绑定上下文更改时调用处理程序的contextChanged(context)方法.