2013-09-01 31 views
5

Tôi đang sử dụng daterangepicker của Dan Grossman.Bộ chọn phạm vi ngày cách kích hoạt sự kiện khi nhập ngày

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

nào được khởi tạo trong trang web của tôi, và bây giờ tôi đang cố gắng để viết javascript đó sẽ được thực hiện một lần như thời gian được nhập vào bởi người sử dụng. Tuy nhiên tôi đã gặp khó khăn trong việc nhận daterangepicker để kích hoạt một sự kiện.

Mã Tôi đang sử dụng là

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

Và đây là đoạn code mà initialises các 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')); 
}); 

nhiều Tôi đã thử nhiều cách khác nhau để lắng nghe cho sự kiện như on.('blur') hay on.('enter') nhưng không có gì kích hoạt sự kiện cho tôi.

Trả lời

6

phần này là hàm callback:

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

bạn có thể thêm bất kỳ mã bạn muốn trong chức năng này để thực hiện khi người dùng chọn một ngày. bạn thậm chí có thể tự định nghĩa hàm gọi lại và chuyển nó tới phương thức chọn daterange.

dụ:

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

bạn cũng thậm chí có thể định nghĩa xử lý sự kiện riêng của bạn và kích hoạt nó trong callback là tốt.

dụ

$(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

Cảm ơn bạn rất nhiều. Điều đó đã giúp rất nhiều! –

+0

Tôi đang sử dụng công cụ chọn lọc cakephp và cùng một daterange cho dự án của mình, làm cách nào tôi có thể gửi ngày bắt đầu và ngày kết thúc cho Bộ điều khiển bằng cách sử dụng myCustonevetnt này? – Aryan

+1

@Neil S, tôi đang gặp phải một vấn đề khi tôi không thay đổi giá trị được chọn mặc định trong daterangepicker, khi nhấp vào nút áp dụng, chức năng gọi lại không được thực thi. Có giải pháp nào cho điều đó không. – tejashsoni111

4

Từ daterangepicker.com:

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

Cảm ơn anh bạn. nó hoạt động :) –

Các vấn đề liên quan