2013-07-30 82 views
2

基於前面的帖子,我已經安裝了下列自定義dateTimePicker的設置動態最小和最大日期威特的jQuery的DateTimePicker

ko.bindingHandlers.datetimepicker = { 
    init: function (element, valueAccessor, allBindingsAccessor) { 
     //initialize datepicker with some optional options 
     var options = allBindingsAccessor().datetimepickerOptions || {}; 
     $(element).datetimepicker(options); 

     //handle the field changing 
     ko.utils.registerEventHandler(element, "change", function() { 
      var observable = valueAccessor(); 
      try { 
       observable($(element).datetimepicker("getDate"));//**** 
      } 
      catch(ex) {} 
     }); 

     //handle disposal (if KO removes by the template binding) 
     ko.utils.domNodeDisposal.addDisposeCallback(element, function() { 
      $(element).datetimepicker("destroy"); 
     }); 

    }, 
    update: function (element, valueAccessor) { 
     var value = ko.utils.unwrapObservable(valueAccessor()), 
      current = $(element).datetimepicker("getDate"); 

     if (value - current !== 0) { 
      $(element).datetimepicker("setDate", value); 
     } 
    } 
}; 

和動態最小和最大日期結合自定義綁定處理

ko.bindingHandlers.minDate = { 
    update: function(element, valueAccessor) { 
     var value = ko.utils.unwrapObservable(valueAccessor()), 
     current = $(element).datetimepicker("option", "minDate", value); 
    } 
}; 


ko.bindingHandlers.maxDate = { 
    update: function(element, valueAccessor) { 
    var value = ko.utils.unwrapObservable(valueAccessor()), 
     current = $(element).datetimepicker("option", "maxDate", value); 
    } 
}; 

我有兩個日期時間選擇器,它們在最小和最大日期方面相互限制。問題是兩個datetimepicker在一個動作(選擇日期或操縱滑塊)後立即關閉。從標記中移除min-max處理程序也可以解決問題。對於如何解決這個問題,有任何的建議嗎?謝謝。

+0

我加入N回答,然後在重新閱讀它,它看起來像你想添加一個最小和最大日在同一日期選擇器,是正確的? –

+0

你如何使用自定義綁定?您能否顯示兩個datetimepickers的標記以及minDate,maxDate和datetimepicker綁定如何使用? – CodeThug

回答

1

我不確定您可以在打開日期選擇器時改變最小值最大值!

更改一個值可能會觸發可觀察的更新,強制更新datepickers的mix-max值。我會檢查你的綁定最小值或最大值的新值,如果沒有改變,我不會改變datepicker的值。

這可能是問題...

相關問題