我有一个基于数据绑定的问题,来自jQuery UI datepicker 更改事件中的敲除和 jquery datepicker 未被 KnockoutJS 捕获
只要日期格式为 dd-mm-yy,它就可以正常工作。一旦我将日期格式更改为 MM-yy,数据绑定就不再更新。无论我在列表框中选择什么,日期都设置为今天的日期。关于如何完成这项工作的任何提示?我在多个级别上有多个控件,所以我更不想使用这个解决方案:Knockout with Jquery UI datepicker, MM/YY only
提前致谢。
Javascript:
ko.bindingHandlers.datepicker = {
init: function (element, valueAccessor, allBindingsAccessor) {
$(element).datepicker({
dateFormat: "dd-mm-yy",
//dateFormat: "MM-yy",
changeYear: true,
changeMonth: true
});
//handle the field changing
ko.utils.registerEventHandler(element, "change", function () {
var observable = valueAccessor();
observable($(element).datepicker("getDate"));
});
//handle disposal (if KO removes by the template binding)
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).datepicker("destroy");
});
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor()),
current = $(element).datepicker("getDate");
if (value - current !== 0) {
$(element).datepicker("setDate", value);
}
}
};
html:
<td><input class="dateField" data-bind="datepicker: plannedStartDate" /></td>
视图模型:
...
self.plannedStartDate = ko.observable();
...