jQuery的日期選擇器我有一個基於數據綁定從jQuery UI datepicker change event not caught by KnockoutJS的Javascript使用淘汰賽
這工作得很好,並且只要還有日期格式爲DD-MM-YY與基因敲除和jQuery日期選擇器的問題。只要我將我的dateform更改爲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();
...