2013-04-03 2 views
2

Есть ли способ по умолчанию для kendo DatePicker для обеспечения того, что дата всегда больше или равна дате From. here is the code I've tried:Выбор диапазона DateTimePicker не работает должным образом

Мой код Выбор диапазона:

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); 
    } 
} 

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

+0

Нет, не существует такой выход -of-box, вам необходимо его реализовать. Проверьте 'http: // demos.kendoui.com/web/datepicker/rangeselection.html' – OnaBai

+0

ya я попытался с кодом выше, но он не работает. Http: // jsfiddle.net/5bchz/58/ – user123

+0

Может ли кто-нибудь мне помочь? пожалуйста, я не нашел решения для проверки готовой коробки. – user123

ответ

6

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

Тем не менее, я рекомендую изменения, используя Дата Кендо UI 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 here

+0

Огромное вам спасибо onabai и то, как вы помогли мне, действительно здорово, что снова я снова просмотрю документы кендо – user123

Смежные вопросы