2013-09-01 14 views
5

Używam daterangepicker Dana Grossmana.Wybór zakresu dat jak wywołać zdarzenie po wprowadzeniu daty

http://www.dangrossman.info/2012/08/20/a-date-range-picker-for-twitter-bootstrap/

Która jest zainicjowany w mojej stronie internetowej, a teraz próbuję napisać skrypt, który będzie realizowany, gdy data jest podana przez użytkownika. Jednak natknąłem się na trudności w doprowadzeniu daterangepicker do wystrzelenia jakiegoś wydarzenia.

Kod używam jest

$('#dateRange').on('changeDate', function(ev){ 
    alert(ev); 
}); 

A oto kod, który inicjuje daterangepicker

$('#dateRange').daterangepicker({ 
    ranges: { 
     'Today': [moment(), moment()], 
     'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)], 
     'Last 7 Days': [moment().subtract('days', 6), moment()], 
     'Last 30 Days': [moment().subtract('days', 29), moment()], 
     'This Month': [moment().startOf('month'), moment().endOf('month')], 
     'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')] 
    }, 
    startDate: moment().subtract('days', 29), 
    endDate: moment() 
}, 
function(start, end) { 
    $('#dateRange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); 
}); 

Próbowałem wiele różnych sposobów, aby wykrywać zdarzenie jak on.('blur') lub on.('enter'), ale nic nie jest dla mnie wyzwaniem.

Odpowiedz

6

ta sekcja jest funkcja zwrotna:

function(start, end) { 
    $('#dateRange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); 
} 

można dodać dowolny kod, który ma w tej funkcji do wykonania, gdy użytkownik wybierze datę. możesz nawet sam zdefiniować funkcję zwrotną i przekazać ją do metody wyboru próbnika.

przykład:

function myCallback(start, end) { 
    $('#dateRange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); 
    alert('hello world'); //etc, your code here 
} 
// attach daterangepicker plugin 
$('#dateRange').daterangepicker(options, myCallback); 

również mógł nawet zdefiniować własną klasę obsługi zdarzeń i wywołać je w zwrotnego, jak również.

przykład

$(document).on('myCustomEvent', function() { 
    // your code here 
}); 

$('#dateRange').daterangepicker({ 
// .. // 
function(start, end) { 
    $('#dateRange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY')); 
    $(document).trigger('myCustomEvent'); 
}); 
+1

Dziękuję bardzo. To bardzo pomogło! –

+0

Używam cakephp i tej samej selektor daterange dla mojego projektu, w jaki sposób mogę wysłać datę rozpoczęcia i zakończenia do kontrolera za pomocą myCustonevetnt? – Aryan

+1

@Neil S, mam do czynienia z jednym problemem, gdy nie zmieniam domyślnej wybranej wartości w daterangepicker, po kliknięciu przycisku Zastosuj funkcja zwrotna nie jest wykonywana. Czy jest na to jakieś rozwiązanie? – tejashsoni111

4

Od daterangepicker.com:

$('#daterange').on('apply.daterangepicker', function(ev, picker) { 
    alert ('hello'); 
}); 
+0

Dzięki stary. to działa :) –

Powiązane problemy