Plugin para validar datos con ASP.Net

Plugin para validar datos con ASP.Net


A pesar de que hay buenos plugin escritos en jQuery, estoy haciendo el intento de tener escribir uno un poco más simple que se adpate a mis desarrollos.

La idea del pluging es incorporar una mascara de agua (http://digitalbush.com/projects/watermark-input-plugin/ ) y añadir de forma automática un indicador de que el valor ingresado no es el correcto.

Por ejemplo si queremos que la caja de texto txtIngreso valide un numeros con dos decimales usamos la siguiente instrucción $('#txtIngreso').nkTipoValidacion('Moneda'); y si queremos que valide solo números enteros usamos $('#txtNumeroFactura').nkTipoValidacion('Entero');

Para validar solo una caja de texto $('#txtNumeroFactura').nkValidar(); y si queremos validar todas las cajas de texto que aceptan datos enteros $("input[Validacion='Entero']").nkValidar();luego de enviar a validar junto a las cajas de texto se va a mostrar un caracter indicando que valores están incorrectos.

Para saber si el formulario está validado usamos la función $.nkValidar.Formulario(); si queremos hacer postback luego de validar el formulario la función sería la siguiente if ($.nkValidar.Formulario()) __doPostBack('cmdEnviarDatos','');

Voy a seguir mejorando el plugin así que este post lo estaré actualizando de forma frecuente, acontinuación el código jQuery


(function($){
var map = new Array();

$.nkValidar={
Formulario:function(){
var suma = 0;
for (var i=0;i<map.length;i++)
suma = suma + parseFloat(map[i].Validado);

if (suma>=1)
return false;
else
return true;
},
Entero:function(){
$("input[Validacion='Entero']").trigger('blur');
},
Moneda:function(){
$("input[Validacion='Moneda']").trigger('blur');
}
}

$.fn.nkValidar = function(){
return this.each(
function(){
$(this).trigger('blur');
}
)
}

$.fn.nkTipoValidacion = function(tipo){
return this.each(
function(){
var input = $(this);

function flValidaNumero()
{

var input = $(this);
var tipo = input.attr('Validacion');
var lblErr = $('#' + input.attr('id') +'lblErr');

lblErr.hide();

if (tipo == 'Moneda')
{
var re = /^(d+)(?:,d{0,2})?$/
var vxMask = '9999,99'
}

if (tipo == 'Entero')
{
var re = /^(d+)$/
var vxMask = '999999'
}

if (typeof(re)=='undefined')
{
map[map.length]={Validado:1};
return false;
}

if (input.val() == vxMask)
{
lblErr.show();
map[map.length]={Validado:1};
return false;
}

if (re.test(input.val()))
{
map[map.length]={Validado:0};
return true;
}
else
{
lblErr.show();
map[map.length]={Validado:1};
return false;
}
};

input.change(flValidaNumero);
input.blur(flValidaNumero);

input.attr('Validacion',tipo);

if (tipo == 'Entero')
input.Watermark("999999");

if (tipo == 'Moneda')
input.Watermark("9999,99");

var lblErr = $('#' + input.attr('id') +'lblErr');
if (typeof(lblErr.attr('id')) == 'undefined') {
input.parent().append("<span style='display:none;FONT-WEIGHT: bold; COLOR: red' id="+ input.attr('id') +'lblErr >*</span>');
}
}
);
};

})(jQuery);