JSFiddle - React, Tailwind, and code Playground
by paska
HTML
<input type="text" />
JavaScript
//Plugin -->
(function ($) {
$.fn.datePickerPlugin = function (options) {
//Opciones por defecto.
options = $.extend({
format: "dd/mm/yyyy", //Formato de la fecha. Solo puede tener "dd", "mm", "yyyy" y separadores o carcteres que no van a ser interpretados
textOnBlur: "dd/mm/yyyy" //Texto para poner en el blur si todavia no se ingreso nada
}, options);
//Referencias
var _this = $(this),
//Otras variables
maxValues = {
"dd": 31,
"mm": 12,
"yyyy": 9999
},
textToComplete = options.format.replace(/(dd|mm|yy)/g, "__"),
posCursor = 0,
waitingKeyUp = 0,
seleccionarValor = function (saltearCaracteres, alreves) {
//Selecciono el primer grupo de guiones
saltearCaracteres = (!saltearCaracteres) ? 0 : saltearCaracteres;
alreves = (!alreves) ? false : alreves;
var text = _this.val();
if (alreves) {
var finalText = "";
for (i = 0; i <= text.length; i++)
finalText = text.substring(i, i + 1) + finalText;
text = finalText;
saltearCaracteres = text.length - saltearCaracteres;
}
if (text.length == saltearCaracteres)
return;
var start = saltearCaracteres + text.substr(saltearCaracteres).search(/(_|[0-9])+/g),
end = start + 1;
while (text.substr(end).search(/(_|[0-9])+/g) == 0)
end++;
if (alreves) {
var aux = text.length - end;
end = text.length - start;
start = aux;
}
_this.selectText(start, end);
},
obtenerVariableActual = function () {
...