50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
|
(function($) {
|
||
|
|
||
|
$.fn.date = function() {
|
||
|
|
||
|
return this.each(function() {
|
||
|
|
||
|
if($(this).data('pikaday')) {
|
||
|
return $(this);
|
||
|
}
|
||
|
|
||
|
var input = $(this).attr('type', 'text');
|
||
|
var hidden = input.next();
|
||
|
var format = input.data('format');
|
||
|
var val = input.val();
|
||
|
var date = val ? moment(val).format(format) : null;
|
||
|
|
||
|
input.attr('placeholder', format);
|
||
|
input.val(date);
|
||
|
|
||
|
// don't initialize the datepicker on readonly fields
|
||
|
if(input.is('[readonly]')) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
input.on('change', function() {
|
||
|
var val = input.val();
|
||
|
if(val) {
|
||
|
hidden.val(moment(val, format).format('YYYY-MM-DD'));
|
||
|
} else {
|
||
|
hidden.val('');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
var pikaday = new Pikaday({
|
||
|
field : this,
|
||
|
firstDay : 1,
|
||
|
format : format,
|
||
|
i18n : input.data('i18n'),
|
||
|
onSelect : function(date) {
|
||
|
hidden.val(moment(date).format('YYYY-MM-DD'));
|
||
|
}
|
||
|
});
|
||
|
|
||
|
$(this).data('pikaday', pikaday);
|
||
|
|
||
|
});
|
||
|
|
||
|
};
|
||
|
|
||
|
})(jQuery);
|