js | $.widget("ui.esCampo", {
options: {version: '3.1.0.0', modo: "edicion", nVersion: false, tipo: 'text', id: '', nombre: '', valor: '', etiqueta: '', obligatorio: false, validar: '', clase: '', identificador: true, maxLength: '', disabled: false, idCampo: '', ancho: '', boton: '', etiquetaInterna: '', tooltip: false, anchoFijo: ''},
_init: function() {
var $this = this,
o = this.options;
this.element.className += this.element.className+' tipoCampoTexto ';
if(o.modo.toUpperCase() == "NA"){return;}
if(typeof o.obligatorio != 'boolean'){ o.obligatorio = Boolean(o.obligatorio)};
var llevaEtiqueta = true,
labelDom = document.createElement('label'),
legendDom = document.createElement('legend'),
inputDom = document.createElement('input'),
clsCampo = ' esCampo ' + o.modo + ' ' + o.clase + ' ';
labelDom.className = 'TextoEtiqueta';
labelDom.innerHTML = o.etiqueta;
if((o.identificador != null && !o.identificador) || o.etiqueta == ''){
llevaEtiqueta = false;
}
if (typeof o.tooltip == 'object') {
var spanTooltip = document.createElement('span');
labelDom.style.position = 'static';
legendDom.style.position = 'static';
legendDom.appendChild($(spanTooltip).esInfo(o.tooltip));
}
if(o.idCampo != ''){
legendDom.id = o.idCampo;
}
if(o.obligatorio){
var emDom = document.createElement('em');
emDom.innerHTML = '*';
legendDom.appendChild(emDom);
clsCampo += ' campoObligatorio';
}
if(o.id != (o.nombre + o.id)){
if(o.id == o.nombre){
o.id += o.nombre
}else{
if(!o.id || o.id == ''){
o.nombre += o.nombre;
}
}
}
switch (o.modo) {
case 'captura':
case 'edicion':
inputDom.id = o.id;
inputDom.setAttribute('type',o.tipo);
inputDom.setAttribute('name',o.nombre);
inputDom.setAttribute('placeholder',o.etiquetaInterna);
inputDom.className = clsCampo;
inputDom.value = o.valor;
labelDom.appendChild(inputDom);
if(o.anchoFijo != ''){
inputDom.style.width = o.anchoFijo
}
if(llevaEtiqueta){
labelDom.insertBefore(legendDom,labelDom.firstChild);
}
var placeholder = 'placeholder' in document.createElement('input');
if(!placeholder) {
var etiquetaInternaDom = document.createElement = 'label';
etiquetaInternaDom.className = 'pHolder';
etiquetaInternaDom.innerHTML = o.etiquetaInterna;
inputDom.parentNode.insertBefore(etiquetaInternaDom, inputDom.nextSibling);
inputDom.onfocus = function() {
etiquetaInternaDom.style.display = 'none';
};
inputDom.onblur = function() {
var input = $(this);
etiquetaInternaDom.style.display = (input.val() == ''?'block':'none');
}
inputDom.blur();
etiquetaInternaDom.onclick = function(){
inputDom.focus();
etiquetaInternaDom.style.display = 'none';
};
}
break;
case 'visualizacion':
var spanDom = document.createElement('span');
spanDom.className = clsCampo;
spanDom.innerHTML = o.valor == ''?'---':o.valor;
labelDom.appendchild(spanDom);
inputDom.type = 'hidden';
inputDom.id = o.id;
inputDom.setAttribute('name',o.nombre);
inputDom.className = clsCampo;
inputDom.value = o.valor;
labelDom.appendChild(inputDom);
if(llevaEtiqueta){
labelDom.insertBefore(legendDom,labelDom.firstChild);
}
break;
case 'horizontal':
var spanDom = document.createElement('span');
spanDom.className = clsCampo+' esCampoHorizontal ';
spanDom.innerHTML = o.valor == ''?'---':o.valor;
labelDom.appendChild(spanDom);
if(llevaEtiqueta){
legendDom.className += ' esCampoHorizontallegend ';
labelDom.insertBefore(legendDom,labelDom.firstChild);
}
this.element.className += ' esCampoHorizontalContenedor ';
break;
case 'ticket_visualizacion':
legendDom.className = legendDom.className.replace(' TextoEtiqueta ',' ');
legendDom.className += ' ecTicket-textoEtiquetaCampo-jQuery ';
var spanDom = document.createElement('span');
spanDom.id = o.id;
spanDom.className = ' ecTicket-contenidoCampo-jQuery ';
spanDom.innerHTML = o.valor == ''?'---':o.valor;
labelDom.appendChild(spanDom);
if(llevaEtiqueta){
legendDom.className += ' ecTicket-labelCampo-jQuery ';
labelDom.insertBefore(legendDom,labelDom.firstChild);
}
this.element.className += ' ecTicket-contenedorCampo-jQuery ';
break;
case 'ticket_edicion':
legendDom.className = legendDom.className.replace(' TextoEtiqueta ',' ');
legendDom.className += ' ecTicket-textoEtiquetaCampo-jQuery ';
inputDom.type = o.tipo;
inputDom.id = o.id;
inputDom.setAttribute('name',o.nombre);
inputDom.className = 'ecTicket-contenidoCampo-jQuery';
inputDom.value = o.valor;
labelDom.appendChild(inputDom);
labelDom.append(inputDom);
if(llevaEtiqueta){
legendDom.className += ' ecTicket-labelCampo-jQuery ';
labelDom.insertBefore(legendDom,labelDom.firstChild);
}
this.element.className += ' ecTicket-contenedorCampo-jQuery ';
break;
}
if (typeof o.boton == 'object') {
for(var b in o.boton){
var btn = $('<span>')[b](o.boton[b])
.on('click', '[type=button]', function(e) {
e.stopPropagation();
e.preventDefault();
var evento = $.Event('esCampo_inputButton');
evento.data_set = {
campoValor: inputDom.value,
nombre: {
boton: b,
campo: inputDom.getAttribute('name'),
},
objeto: {
boton: $(this),
campo: inputDom,
elemento : $this.element
},
cb: function(re) {
inputDom.value = re;
}
};
$this.element.trigger(evento);
});
btn.find('label').css('padding','0px');
$(labelDom).append(btn);
}
}
this.element.append(labelDom);
if(o.nVersion && inputDom != ""){
if (o.maxLength != ''){inputDom.maxLength = o.maxLength;}
if (o.disabled){inputDom.disabled = o.disabled;}
if (typeof o.validar == 'object'){$(inputDom).validar(o.validar);}
}
if (o.ancho){inputDom.style.minWidth = o.ancho+'px';}
inputDom.onchange = function(){
if(inputDom != ''){inputDom.className = inputDom.className.replace(' campoValidado ',' ');}
}
},
cleanValue: function() {
$(this.element).find("input").val('');
},
getOptions: function() {
return new CloneObject(this.options);
},
getValue: function() {
return (!$(this.element).find('input').val() && $(this.element).find('input').val() != "") ? null : $(this.element).find('input').val();
},
destroy: function() {
$.Widget.prototype.destroy.apply(this, arguments);
$(this.element).empty();
}
});
for(var x=0;x<=100;x++){
$("<div>").esCampo();
}
| ready |
actual | $.widget("ui.esCampo", {
options: {version: '3.0.0.4', modo: "edicion", nVersion: false, tipo: 'text', id: '', nombre: '', valor: '', etiqueta: '', obligatorio: false, validar: '', clase: '', identificador: true, maxLength: '', disabled: false, idCampo: '', ancho: '', boton: '', etiquetaInterna: '', tooltip: false, anchoFijo: ''},
_init: function() {
var $this = this,
o = this.options;
this.element.addClass('tipoCampoTexto');
if(o.modo.toUpperCase() == "NA"){return;}
if(typeof o.obligatorio != 'boolean'){ o.obligatorio = Boolean(o.obligatorio)};
var llevaEtiqueta = true,
labelDom = $('<label>'),
legendDom = $('<legend>').attr('class','TextoEtiqueta').html(o.etiqueta),
inputDom = $('<input>'),
clsCampo = "esCampo " + o.modo + " " + o.clase + " ";
if((o.identificador != null && !o.identificador) || o.etiqueta == ''){
llevaEtiqueta = false;
}
if (typeof o.tooltip == 'object') {
labelDom.css('position','static');
legendDom.append($('<span>').esInfo(o.tooltip)).css('position','static');
}
if(o.idCampo != ''){
legendDom.attr('id',o.idCampo);
}
if(o.obligatorio){
clsCampo += ' campoObligatorio';
legendDom.append('<em>*</em>');
}
if(o.id != (o.nombre + o.id)){
if(o.id == o.nombre){
o.id += o.nombre
}else{
if(!o.id || o.id == ''){
o.nombre += o.nombre;
}
}
}
switch (o.modo) {
case 'captura':
case 'edicion':
inputDom
.prop('type', o.tipo)
.attr('id',o.id)
.attr('name',o.nombre)
.attr('placeholder',o.etiquetaInterna)
.attr('class',clsCampo)
.attr('value', o.valor);
labelDom.append(inputDom);
if(o.anchoFijo != ''){inputDom.css('width',o.anchoFijo)}
if(llevaEtiqueta){labelDom.prepend(legendDom)}
var placeholder = 'placeholder' in document.createElement('input');
if(!placeholder) {
var etiquetaInternaDom = $('<label>').attr('class','pHolder').text(o.etiquetaInterna);
inputDom.after(etiquetaInternaDom)
.focus(function() {
etiquetaInternaDom.hide();
})
.blur(function() {
var input = $(this);
if(input.val() == ''){etiquetaInternaDom.show();
}else{etiquetaInternaDom.hide();}
})
.blur();
etiquetaInternaDom.on('click', function() {
inputDom.focus();
etiquetaInternaDom.hide();
});
}
break;
case 'visualizacion':
var spanDom = $('<span>')
.attr("class", clsCampo)
.html(o.valor == ''?'---':o.valor);
labelDom.append(spanDom);
inputDom
.prop("type","hidden")
.attr("id",o.id)
.attr("name",o.nombre)
.attr("class",clsCampo)
.attr("value",o.valor);
labelDom.append(inputDom);
if(llevaEtiqueta){labelDom.prepend(legendDom);}
break;
case 'horizontal':
var spanDom = $('<span>')
.attr("class", clsCampo + " esCampoHorizontal")
.html(o.valor == ''?'---':o.valor);
labelDom.append(spanDom);
if(llevaEtiqueta){
legendDom.addClass('esCampoHorizontallegend');
labelDom.prepend(legendDom);
}
this.element.addClass('esCampoHorizontalContenedor');
break;
case 'ticket_visualizacion':
legendDom
.removeClass('TextoEtiqueta')
.addClass('ecTicket-textoEtiquetaCampo-jQuery');
var spanDom = $('<span>')
.attr("id",o.id)
.attr("class", "ecTicket-contenidoCampo-jQuery")
.html(o.valor == ''?'---':o.valor);
labelDom.append(spanDom);
if(llevaEtiqueta){
legendDom.addClass('ecTicket-labelCampo-jQuery');
labelDom.prepend(legendDom);
}
this.element.addClass('ecTicket-contenedorCampo-jQuery');
break;
case 'ticket_edicion':
legendDom
.removeClass('TextoEtiqueta')
.addClass('ecTicket-textoEtiquetaCampo-jQuery');
inputDom
.prop('type', o.tipo)
.attr("id",o.id)
.attr("name",o.nombre)
.attr("class",'ecTicket-contenidoCampo-jQuery')
.attr("value",o.valor);
labelDom.append(inputDom);
if(llevaEtiqueta){
legendDom.addClass('ecTicket-labelCampo-jQuery')
labelDom.prepend(legendDom);
}
this.element.addClass('ecTicket-contenedorCampo-jQuery');
break;
}
if (typeof o.boton == 'object') {
for(var b in o.boton){
var btn = $('<span>')[b](o.boton[b])
.on('click', '[type=button]', function(e) {
e.stopPropagation();
e.preventDefault();
var evento = $.Event('esCampo_inputButton');
evento.data_set = {
campoValor: inputDom.attr('value'),
nombre: {
boton: b,
campo: inputDom.attr('name')
},
objeto: {
boton: $(this),
campo: inputDom,
elemento : $this.element
},
cb: function(re) {inputDom.attr('value', re)}
};
$this.element.trigger(evento);
});
btn.find('label').css('padding','0px');
labelDom.append(btn);
}
}
this.element.append(labelDom);
if(o.nVersion && inputDom != ""){
if (o.maxLength != ''){inputDom.attr('maxLength', o.maxLength);}
if (o.disabled){inputDom.prop('disabled', o.disabled);}
if (typeof o.validar == 'object'){inputDom.validar(o.validar);}
}
if (o.ancho){inputDom.css('min-width', o.ancho + "px");}
inputDom.on('change',function(){
if(inputDom != ''){inputDom.removeClass('campoValidado');}
});
},
cleanValue: function() {
$(this.element).find("input").val('');
},
getOptions: function() {
return new CloneObject(this.options);
},
getValue: function() {
return (!$(this.element).find('input').val() && $(this.element).find('input').val() != "") ? null : $(this.element).find('input').val();
},
destroy: function() {
$.Widget.prototype.destroy.apply(this, arguments);
$(this.element).empty();
}
});
for(var x=0;x<=100;x++){
$("<div>").esCampo();
}
| ready |
normal |
$.widget("ui.esCampo", {
options: {modo: "edicion", nVersion: false, tipo: 'text', id: '', nombre: '', valor: '', etiqueta: '', obligatorio: false, validar: '', clase: '', identificador: true, maxLength: '', disabled: false, idCampo: '', verOp: false, ancho: '', boton: '', etiquetaInterna: '', tooltip: false, anchoFijo: ''},
_init: function() {
var thisELement = this.element,
$o = this.options,
content = $('<label>'),
llevaEtiqueta = $o.identificador,
campo = "", clsCampo = "";
$o.obligatorio = Boolean($o.obligatorio);
if ($o.verOp)
return console.warn(this.options);
if ($o.modo.toUpperCase() == "NA") {
return;
}
llevaEtiqueta = ((llevaEtiqueta == "false" || !llevaEtiqueta) && llevaEtiqueta != null) ? false : (($o.etiqueta == '') ? false : true);
$o.id = ($o.id != $o.nombre + $o.id) ? (($o.id == $o.nombre) ? ($o.id + $o.nombre) : (($o.id == null || $o.id == '') ? ($o.nombre + $o.nombre) : $o.id)) : $o.id;
$o.identificador = ($o.idCampo != "") ? $('<legend id="' + $o.idCampo + '">').addClass('TextoEtiqueta').html($o.etiqueta) : $('<legend>').addClass('TextoEtiqueta').html($o.etiqueta);
clsCampo = "esCampo " + $o.modo + " " + $o.clase + " " + (($o.obligatorio) ? 'campoObligatorio' : '');
if ($o.obligatorio)
$o.identificador.append('<em>*</em>');
if (typeof $o.tooltip == 'object') {
$o.identificador.append($('<span>').esInfo($o.tooltip))
$o.identificador.css('position', 'static');
$(content).css('position', 'static');
}
switch ($o.modo) {
case 'captura':
case 'edicion':
var ancho = "";
if ($o.anchoFijo != ""){
ancho = 'max-width:' + $o.anchoFijo + ';min-width:' + $o.anchoFijo;
}
campo = $('<input>', {'type': $o.tipo, 'id': $o.id, 'name': $o.nombre, 'class': clsCampo, 'value': ($o.modo == 'edicion') ? $o.valor : '', 'placeholder': $o.etiquetaInterna, 'style': ancho});
$(content).append(campo);
if (llevaEtiqueta) {
$(content).prepend($o.identificador);
}
var placeholder = 'placeholder' in document.createElement('input');
if (!placeholder) {
var $etiquetaInterna = $('<label>', {'style': 'position: absolute;width: 150px;top: 17px;left: 5px;height: 15px;overflow: hidden;color: #a9a9a9;'}).text($o.etiquetaInterna);
campo.after($etiquetaInterna);
campo.focus(function() {
$etiquetaInterna.hide();
}).blur(function() {
var input = $(this);
if (input.val() == '') {
$etiquetaInterna.show();
} else {
$etiquetaInterna.hide();
}
}).blur();
$etiquetaInterna.on('click', function() {
campo.focus();
$etiquetaInterna.hide();
});
}
break;
case 'visualizacion':
campo = $('<span>').attr("class", clsCampo).html(($o.valor == '') ? '---' : $o.valor);
$(content).append(campo);
campo = $('<input>').attr("name", $o.nombre).attr("class", clsCampo).attr("id", $o.id).attr("type", "hidden").attr("value", $o.valor);
$(content).append(campo);
if (llevaEtiqueta) {
$(content).prepend($o.identificador);
}
break;
case 'horizontal':
campo = $('<span>').attr("class", clsCampo + " " + "esCampoHorizontal").html(($o.valor == '') ? '---' : $o.valor);
$(content).append(campo);
campo = $('<input>').attr("name", $o.nombre).attr("class", clsCampo).attr("id", $o.id).attr("type", "hidden").attr("value", $o.valor);
if (llevaEtiqueta) {
$(content).prepend($o.identificador).addClass('esCampoHorizontallegend');
}
$(this.element).addClass('esCampoHorizontalContenedor');
break;
case 'ticket_visualizacion':
$o.identificador.removeClass('TextoEtiqueta').addClass('ecTicket-textoEtiquetaCampo-jQuery');
campo = $('<span>').attr('id', $o.id).removeClass('esCampo').attr("class", "ecTicket-contenidoCampo-jQuery").html(($o.valor == '') ? '---' : $o.valor);
$(content).append(campo);
campo = $('<input>').attr("name", $o.nombre).attr("class", clsCampo).attr("id", $o.id).attr("type", "hidden").attr("value", $o.valor);
if (llevaEtiqueta) {
$(content).prepend($o.identificador).addClass('ecTicket-labelCampo-jQuery');
}
$(this.element).addClass('ecTicket-contenedorCampo-jQuery');
break;
case 'ticket_edicion':
$o.identificador.removeClass('TextoEtiqueta').addClass('ecTicket-textoEtiquetaCampo-jQuery');
campo = $('<input>').attr("id", $o.id).removeClass('esCampo').attr("name", $o.nombre).attr("class", "ecTicket-contenidoCampo-jQuery").attr("value", $o.valor);
$(content).append(campo);
if (llevaEtiqueta) {
$(content).prepend($o.identificador).addClass('ecTicket-labelCampo-jQuery');
}
$(this.element).addClass('ecTicket-contenedorCampo-jQuery');
break;
}
if ($o.boton != '') {
$.each($o.boton, function(k, v) {
var btn = $('<span>')[k](v);
btn.on('click', '[type=button]', function(ee) {
$tbtn = $(this);
ee.stopPropagation();
ee.preventDefault();
var evento = $.Event('esCampo_inputButton')
evento.data_set = {
campoValor: campo.attr('value'),
nombre: {
boton: k,
campo: campo.attr('name')
},
objeto: {
boton: $tbtn,
campo: campo,
elemento: thisELement
},
cb: function(re) {
campo.attr('value', re)
}
}
thisELement.trigger(evento);
})
.find('label').css('padding', '0px');
$(content).append(btn);
});
}
$(this.element).append(content);
if ($o.nVersion) {
if (campo != "") {
if ($o.maxLength != '')
campo.attr('maxLength', $o.maxLength)
if ($o.disabled)
campo.attr('disabled', $o.disabled);
campo.validar($o.validar);
}
}
if ($o.ancho != '') {
$o.ancho = $o.ancho + "px";
campo.css('min-width', $o.ancho)
}
campo.on('change',function(){
if(campo != '')campo.removeClass('campoValidado');
});
},
cleanValue: function() {
$(this.element).find("input").val('');
},
getOptions: function() {
return new CloneObject(this.options);
},
getValue: function() {
return (!$(this.element).find('input').val() && $(this.element).find('input').val() != "") ? null : $(this.element).find('input').val();
},
destroy: function() {
$.Widget.prototype.destroy.apply(this, arguments);
$(this.element).empty();
}
});
for(var x=0;x<=100;x++){
$("<div>").esCampo();
}
| ready |