Выберите диапазон DateTimePicker не работает должным образом

Есть ли какой-либо способ по умолчанию в кендо DatePicker для обеспечения того, чтобы дата «Дата» всегда была больше или равна дате «От». вот код, который я пробовал:

Код выбора моего диапазона:

function startChange() {
    var startDate = startdatetimepicker.value(),
            endDate = enddatetimepicker.value();

    if (startDate) {
        startDate = new Date(startDate);
        startDate.setDate(startDate.getDate());
        enddatetimepicker.min(startDate);
    } else if (endDate) {
        startdatetimepicker.max(new Date(endDate));
    } else {
        endDate = new Date();
        startdatetimepicker.max(endDate);
        enddatetimepicker.min(endDate);
    }
}

function endChange() {
    var endDate = enddatetimepicker.value(),
            startDate = startdatetimepicker.value();

    if (endDate) {
        endDate = new Date(endDate);
        endDate.setDate(endDate.getDate());
        startdatetimepicker.max(endDate);
    } else if (startDate) {
        enddatetimepicker.min(new Date(startDate));
    } else {
        endDate = new Date();
        startdatetimepicker.max(endDate);
        enddatetimepicker.min(endDate);
    }
}

Я получаю эту ошибку -> «свойство« значение »объекта 3 не является функцией»


person user123    schedule 03.04.2013    source источник
comment
Нет, такой готовой валидации нет, ее нужно реализовать. Проверить http://demos.kendoui.com/web/datepicker/rangeselection.html   -  person OnaBai    schedule 03.04.2013
comment
да, я пробовал с кодом выше, но он не работает. jsfiddle.net/5bchz/58   -  person user123    schedule 03.04.2013
comment
Может ли кто-нибудь помочь мне, пожалуйста, я не нашел решения для готовой проверки.   -  person user123    schedule 03.04.2013
comment
Просто подсказка, чтобы заставить вас задуматься (надеюсь, это поможет вам в отладке программы)... Что такое startdatetimepicker? Где вы это определяете? Это object с методом value()? Уверены ли вы? Когда вы копируете, вы должны понимать, что вы копируете...   -  person OnaBai    schedule 03.04.2013
comment
да, согласно моему объекту знаний, мы можем передать что угодно методу, поэтому здесь я передал идентификатор datetimepicker (startdatetimepicker) методу value(). если я ошибаюсь, можете ли вы объяснить мне, если вы не возражаете.   -  person user123    schedule 03.04.2013
comment
:-) startdatepicker - это объект ввода HTML, и нет метода value, кроме property. Поэтому вы должны использовать: startdatetimepicker.value   -  person OnaBai    schedule 03.04.2013
comment
В примере, из которого вы скопировали его, использовалась переменная, соответствующая средству выбора даты и времени Kendo UI...   -  person OnaBai    schedule 03.04.2013
comment
после передачи значения в качестве свойства я получаю еще одну ошибку, что свойство 'min' объекта #‹HTMLInputElement› не является функцией. Я думаю, что это min является свойством в методе value(), так что это ошибка или какая-то другая причина?   -  person user123    schedule 03.04.2013
comment
Все еще путают с объектами HTML и объектами Kendo UI! Проверьте здесь jsfiddle.net/OnaBai/5bchz/72   -  person OnaBai    schedule 03.04.2013
comment
Я, спасибо, onabai, это работает, но вот еще одна проблема: когда я ввожу первую дату в сетке 18-02-13 19:54:13, это не фильтрация, но когда я вхожу 19-02-13 20:55:20, это фильтр gt, но в моем состоянии я дал ge. на самом деле это не связано с вышеуказанным вопросом, но раньше он работал нормально, но теперь он не работает должным образом, вы можете проверить его один раз, пожалуйста jsfiddle.net/OnaBai/5bchz/72   -  person user123    schedule 03.04.2013
comment
Работаете ли вы с @kvs? вы дублируете вопросы?   -  person OnaBai    schedule 03.04.2013
comment
нет, онаби, я не знаю о @kvs. нет, я не дублирую вопросы. При проверке моего кода я получил выше isuue, поэтому я разместил комментарий   -  person user123    schedule 03.04.2013
comment
Он/она задает однотипные вопросы с очень (слишком) похожим кодом (!!!)   -  person OnaBai    schedule 03.04.2013
comment
Произошла опечатка при настройке обработчика событий для выбора даты для даты окончания. Я думаю, что теперь это исправлено: jsfiddle.net/OnaBai/5bchz/81   -  person OnaBai    schedule 03.04.2013


Ответы (1)


Ваш startdatepicker является HTML input object, и нет метода value, кроме property. Поэтому вы должны использовать: startdatetimepicker.value.

Тем не менее, я рекомендую изменить использование Kendo UI Date Time Picker следующим образом:

function startChange() {
    var startDate = k_startdatetimepicker.value(),
            endDate = k_enddatetimepicker.value();

    if (startDate) {
        startDate = new Date(startDate);
        startDate.setDate(startDate.getDate());
        k_enddatetimepicker.min(startDate);
    }
    else if (endDate) {
        k_startdatetimepicker.max(new Date(endDate));
    }
    else {
        endDate = new Date();
        k_startdatetimepicker.max(endDate);
        k_enddatetimepicker.min(endDate);
    }
}

function endChange() {
    var endDate = k_enddatetimepicker.value(),
            startDate = k_startdatetimepicker.value();
    console.log(endDate, startDate);

    if (endDate) {
        endDate = new Date(endDate);
        endDate.setDate(endDate.getDate());
        k_startdatetimepicker.max(endDate);
    }
    else if (startDate) {
        k_enddatetimepicker.min(new Date(startDate));
    }
    else {
        endDate = new Date();
        k_startdatetimepicker.max(endDate);
        k_enddatetimepicker.min(endDate);
    }
}

где k_startdatetimepicker и k_enddatetimepicker:

var k_startdatetimepicker = $("#startdatetimepicker").kendoDateTimePicker({
    change: startChange,
    showSecond: true,
    dateFormat: "dd-mm-yy",
    timeFormat: "HH:mm:ss",
    format: "dd-MM-yy HH:mm:ss"
}).data("kendoDateTimePicker");


var k_enddatetimepicker = $("#enddatetimepicker").kendoDateTimePicker({
    change: endChange,
    showSecond: true,
    dateFormat: "dd-mm-yy",
    timeFormat: "HH:mm:ss",
    format: "dd-MM-yy HH:mm:ss"
}).data("kendoDateTimePicker");

Запуск JSfiddle здесь

person OnaBai    schedule 03.04.2013
comment
Большое вам спасибо, онабай, и то, как вы мне помогли, действительно здорово, что я снова просматриваю документы по кендо. - person user123; 04.04.2013