私は2つの剣道TimePicker持ち:from
とTelerik剣道TimePicker最小/最大の設定は無視されます
私は何を達成しようとしたが、これらのTimePickersのリストのオプションドロップダウンの範囲を変更するためにJavaScriptを使用することですto
。両方のTimePickersの間隔は00:00から23:30まで30分です。
たとえば、from
〜14:30を選択すると、to
が開かれたときのオプションは少なくとも14:30になります。両方from
とto
は最後のオプションを選択した場合も同様に、一つは(当時from
の最大オプションが除いて、私は私のコードとすべてのものを書かれている20時
が大丈夫らしいです、20時まで23:30をto
を選択した場合)、予想される動作はto
のオプションは23:30それ自体です。しかし、実際にはto
のオプションは、23:30から23:00(すなわち、23:30、00:00、00:30、... 23:00)から30分間隔のすべての時間間隔です。
私は午後12時00分に設定し、両方を含む他の多くの「combinbations」を試してみました、すべてがこのような場合を除いて、正しい動作を示しています。私はそれがTelerikコントロールの既知のバグか、私のコードに間違いがあるのだろうか?予想される動作を実装するにはどうすればよいですか?
var $start = $startSel.data("kendoDateTimePicker");
var $end = $endSel.data("kendoDateTimePicker");
var start = $startSel.val() == "" ? null : $start.value();
var end = $endSel.val() == "" ? null : $end.value();
if (start != null) {
$end.min(comLib.ceilTo30Minute(start));
} else {
$end.min(new Date(1900, 0, 1));
$end.max(new Date(2099, 11, 31));
}
if (end != null) {
$start.max(comLib.floorTo30Minute(end));
} else {
$start.min(new Date(1900, 0, 1));
$start.max(new Date(2099, 11, 31));
}
///////////////////// in comLib
function ceilTo30Minute (dateTime) {
if (dateTime == null)
return null;
var min = dateTime.getMinutes() % 30;
if (min != 0)
{
dateTime = publicAccess.addTime(dateTime, 0, -min);
dateTime = publicAccess.addTime(dateTime, 0, 30);
}
return dateTime;
};
function floorTo30Minute(dateTime) {
if (dateTime == null)
return null;
var min = dateTime.getMinutes() % 30;
if (min != 0) {
dateTime = publicAccess.addTime(dateTime, 0, -min);
}
return dateTime;
};