dateField - legacy
by Eric Miller
HTML
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<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"></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'
},
opt = opt || default_opt,
api = {
/**
* Get Local Date Separator from Options or Default Values
*/
getLocalDateSeperator: function () {
return opt.separator || default_opt.separator;
},
/**
* 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();
// if does not contain seperator define blocks
if (ldateString.indexOf(seperator) === -1) {
ldateString = ldateString.substr(0, 2) + seperator +
ldateString.substr(2, 2) + seperator +
ldateString.substr(4, 4);
}
return ldateString;
}
},
ui = {
/**
* On blur event to trigger format of date in input field
* @param {object} - Elment to be evaluated
*/
onBlur: function (elem) {
var $input = $(elem),
ldate = $input.val(),
fldate = api.formatLocalDateString(ldate)
;
$input.val(fldate);
return;
}
}
;
// [EVENTS]
/**
* On blur of input date, trigger format of date
*/
$obj.on('blur', 'input.date', function () {
ui.onBlur(this);
});
return $obj;
};
/**
* JQuery wiring to create elements
*/
$.fn.DateField = function (opt) {
return new...