Reputation: 5665
I'm using a basic JQuery date range picker from this example site: http://www.daterangepicker.com/. I am looking for a way to take the provided output from the date range picker and place them into two inputs fields after the dates have been selected. For now, I just want to prove that I can display each value in the new input fields. In the future, I will parse the string to provide two separate dates, but please ignore this for now.
<input id="dateRangePicker" type="text" name="daterange" value="01/01/2015 - 01/31/2015" /><br />
<input id="selectedDatePickerField" /><br />
<input id="selectedDatePickerField2" />
This is what I've tried so far:
Script:
<script type="text/javascript">
//<![CDATA[
$(function () {
$('input[name="daterange"]').daterangepicker();
});
});
$(document).ready(function () {
$('#dateRangePicker').on('change', function () {
$('#selectedDatePickerField').val(this.value);
$('#selectedDatePickerField2').val(this.value);
}).change();
$('#dateRangePicker').on('daterangepicker', function (e, ui) {
$('#selectedDatePickerField').val(ui.item.value);
$('#selectedDatePickerField2').val(ui.item.value);
});
});
//]]>
</script>
How can I move the value from the date range picker to each of the input fields?
Upvotes: 0
Views: 1280
Reputation: 4674
The best way to do this using daterangepicker
onselect function. Please follow below code::
HTML
<input id="dateRangePicker" type="text" name="daterange" value="" /><br />
<input id="selectedDatePickerField" /><br />
<input id="selectedDatePickerField2" />
jQuery
$(document).ready(function (e) {
$('#dateRangePicker').daterangepicker({}, function(start, end, label) {
$('#selectedDatePickerField').val(start.format('MM/DD/YYYY') + ' - ' + end.format('MM/DD/YYYY'));
$('#selectedDatePickerField2').val(start.format('MM/DD/YYYY') + ' - ' + end.format('MM/DD/YYYY'));
});
});
Upvotes: 2
Reputation: 1643
You need to use the on('apply.daterangepicker') to get date pickers startDate and endDate values to input fields.
$('input[name="daterange"]').on('apply.daterangepicker', function(ev, picker) {
$('#selectedDatePickerField').val(picker.startDate.format('DD/MM/YYYY'));
$('#selectedDatePickerField2').val(picker.endDate.format('DD/MM/YYYY'));
});
Snippet
//<![CDATA[
$(function () {
$('input[name="daterange"]').daterangepicker();
});
$(document).ready(function () {
$('#dateRangePicker').on('change', function () {
$('#selectedDatePickerField').val(this.value);
$('#selectedDatePickerField2').val(this.value);
}).change();
$('#dateRangePicker').on('daterangepicker', function (e, ui) {
$('#selectedDatePickerField').val(ui.item.value);
$('#selectedDatePickerField2').val(ui.item.value);
});
});
$('input[name="daterange"]').on('apply.daterangepicker', function(ev, picker) {
$('#selectedDatePickerField').val(picker.startDate.format('DD/MM/YYYY')); $('#selectedDatePickerField2').val(picker.endDate.format('DD/MM/YYYY'));
});
<script type="text/javascript" src="//cdn.jsdelivr.net/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/bootstrap/3/css/bootstrap.css" />
<!-- Include Date Range Picker -->
<script type="text/javascript" src="//cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.css" />
<input id="dateRangePicker" type="text" name="daterange" value="01/01/2015 - 01/31/2015" /><br />
<input id="selectedDatePickerField" /><br />
<input id="selectedDatePickerField2" />
Here is the working jsfiddle:https://jsfiddle.net/derfekse/
Upvotes: 2
Reputation: 1962
That component has two properties to report the startDate
and the endDate
selected. You need to read those properties after the change event is generated. To access those properties this is the syntax:
var drp = $('#daterange').data('daterangepicker').xxxxxx;
where xxxx is the method you want to call (it could be a method or a property)
Date Range Picker documentation:
http://www.daterangepicker.com/#options
$('input[name="daterange"]').daterangepicker();
$('#dateRangePicker').on('change', function ()
{
$('#selectedDatePickerField').val($('#dateRangePicker').data('daterangepicker').startDate);
$('#selectedDatePickerField2').val($('#dateRangePicker').data('daterangepicker').endDate);
});
$('#dateRangePicker').on('daterangepicker', function (e, ui)
{
$('#selectedDatePickerField').val(ui.item.value);
$('#selectedDatePickerField2').val(ui.item.value);
});
if you want to set the start date after initialized you can use:
//change the selected date range of that picker
$('#daterange').data('daterangepicker').setStartDate('03/01/2014');
$('#daterange').data('daterangepicker').setEndDate('03/31/2014');
and finally a fiddle that shows how all goes together:
https://jsfiddle.net/HappyiPhone/oj8yhnLo/1/
Hope it helps!
Upvotes: 1