私は多くの日付ピッカーを持っています。最初の日付ピッカーは区間の始まりであり、2番目の区間は終わりです。論理的には、最初の日付ピッカーがその秒以上の値を持つべきではなく、その逆も必要である。私はこのコードを書いた:ノックアウトを使ってdatepickerの考えを別のdatepickerにバインドする
HTML:
<input type="text" class="datepicker" data-bind="datepicker: firstDate, datepickerOptions: { endDate: secondDate }" />
<input type="text" class="datepicker" data-bind="datepicker: secondDate, datepickerOptions: { startDate: firstDate }" />
そして、JS:
function model() {
var self = this;
self.firstDate = ko.observable();
self.secondDate = ko.observable();
}
ko.bindingHandlers.datepicker = {
init: function(element, valueAccessor, allBindingsAccessor) {
//initialize datepicker with some optional options
var options = allBindingsAccessor().datepickerOptions || {};
$(element).datepicker(options);
//when a user changes the date, update the view model
ko.utils.registerEventHandler(element, "changeDate", function(event) {
var value = valueAccessor();
if (ko.isObservable(value)) {
value(event.date);
}
});
},
update: function(element, valueAccessor) {
var widget = $(element).data("datepicker");
//when the view model is updated, update the widget
if (widget) {
widget.date = ko.utils.unwrapObservable(valueAccessor());
if (widget.date) {
widget.setValue();
}
}
}
};
ko.applyBindings(new model());
$('body').on('focus', ".datepicker", function() {
$(this).datepicker({
format: 'dd.mm.yyyy',
language: 'ru',
forceParse: true,
todayBtn: true,
clearBtn: true,
autoclose: true
});
});
値がバインドされますされているが、MinDateプロパティは、日付の選択に更新されていません。誰かが私の間違いを指摘できますか?
ここにはbroken JsFiddleとworking oneがあります。だからすぐに私のコードにdatepickerOptions
を追加すると、壊れてしまいます。あなたは何ができるか
のattr '試すには:{MinDateプロパティ:値}' – Rajesh
@Rajeshは、いや、残念ながらそれは動作しません。 –
@ mr.nothing、実際の例を提供できますか? (html/jsコードだけでなく、動作する2つのdatpickerを表示する完全なjsfiddle/snippet)。 – Dekel