dateField
by Eric Miller
HTML
<div class="dateField form-group" id="field_cc4536db_form_group">
<input id="field_cc4536db_ISO" name="reportEndDate_ISO" type="hidden" value="20160119" data-noseparator="true">
<input class="form-control date size-10 hasDatepicker" id="field_cc4536db" name="reportEndDate" type="text" data-field="field_cc4536db_ISO" data-format="mm/dd/yyyy" value="01/22/2016" data-noseparator="true">
<button type="button" class="ui-datepicker-trigger"><i class="fa fa-calendar">Cal</i></button>
</div>
JavaScript
/**
* DateField Web Control
* @param {object} - Object to be evaluated as a datefield
* @param {object} - Options to be evaluated as overrides for default behavior
* @return {object}
*/
function DateField(obj, opt) {
var $obj = $(obj),
default_opt = {
separator: '/',
localFormat: 'mm/dd/yyyy',
isoSeparator: ''
},
opt = opt || default_opt,
api = {
getLocalFormat: function() {
return opt.localFormat || default_opt.localFormat;
},
/**
* Get Local Date Separator from Options or Default Values
*/
getLocalDateSeperator: function() {
return opt.separator || default_opt.separator;
},
getISODateSeperator: function() {
return opt.isoSeparator || default_opt.isoSeparator
},
/**
* Parse local date string into parts (month, day, year)
* @params {string} - Local date to be evaluated
* @returns {object}
*/
getLocalDateStringParts: function(ldateString, format) {
var parts, f, month, day, year,
format = format || api.getLocalFormat(),
seperator = /[^mdy]/.exec(format)[0],
theFormat = format.split(seperator),
theDate = ldateString.split(seperator),
m = [],
d = [],
y = [];
for (i; i < format.lenght; i++) {
f = format[i];
if (/m/.test(f)) m.push(date[i]);
if (/d/.test(f)) d.push(date[i]);
if (/y/.test(f)) y.push(date[i]);
}
month = m.join('');
day = d.join('');
year = y.join('');
return {
month: month,
day: day,
year: year
};
},
/**
* Format Local Date String if does not contain seprator
* @param {string} - Local Date string to be evaluated
* @return {string}
*/
formatLocalDateString: function(ldateString) {
var seperator = api.getLocalDateSeperator(),
...