Jump to content


gambiT_

Member Since 01/10/2006
Offline Last Active 03/10/2010, 10:44
-----

Topics I've Started

Validação De Dados

06/08/2010, 16:59

Favor reportarem qualquer inconsistência no script abaixo:

$(document).ready(function() {
	$('.numero').validarNUMERO('999999');
	$('.nome').validarNOME();
	$('.data').validarDATA('99/99/9999');
	$('.hora').validarHORA('99:99');
	$('.docCPF').validarCPF('999.999.999-99');
	$('.docCNPJ').validarCNPJ('99.999.999/9999-99');
	$('.email').validarEMAIL();
});

$.fn.setOK = function() {
	$(this)
		.removeClass('statusERRO')
		.addClass('statusOK');
}

$.fn.setERRO = function() {
	$(this)
		.removeClass('statusOK')
		.addClass('statusERRO');
}

$.fn.setDEFAULT = function() {
	$(this)
		.removeClass('statusERRO')
		.removeClass('statusOK');
}

$.fn.validarNOME = function() {
	$(this).blur(function() {
		if ($(this).val() && $(this).val() != '') {
			if (validarNOME($(this).val())) $(this).setOK();
			else $(this).setERRO();
		}
	});
}

$.fn.validarNUMERO = function(mask) {
	$(this)
		.attr('maxlength', mask.length)
		.attr('size', mask.length)
		.blur(function() {
		if ($(this).val() && $(this).val() != '') {
			if (validarNUMERO($(this).val())) $(this).setOK();
			else $(this).setERRO();
		} else $(this).setDEFAULT();
	});
}

$.fn.validarDATA = function(mask) {
	$(this)
		.attr('maxlength', mask.length)
		.attr('size', mask.length)
		.blur(function() {
		if ($(this).val() && $(this).val() != '') {
			if (validarDATA($(this).val())) $(this).setOK();
			else $(this).setERRO();
		}
	});
}

$.fn.validarHORA = function(mask) {
	$(this)
		.attr('maxlength', mask.length)
		.attr('size', mask.length)
		.blur(function() {
		if ($(this).val() && $(this).val() != '') {
			if (validarHORA($(this).val())) $(this).setOK();
			else $(this).setERRO();
		}
	});
}

function validarEMAIL(EMAIL) {
	if (EMAIL.indexOf('@') < 0 || EMAIL.indexOf('.') < EMAIL.indexOf('@')) return false;
	else {
		var usuario = EMAIL.split('@')[0];
		var dominio = (EMAIL.split('@')[1]).split('.')[0];
		var extensao = (EMAIL.split('@')[1]).split('.')[1];
		if (!usuario || !dominio || !extensao) $(this).setERRO();
		else {
			if (usuario.length < 3 || dominio.length < 2 || extensao < 2) return false;
			else return true;
		}
	}
}

$.fn.validarEMAIL = function() {
	$(this).blur(function() {
		if ($(this).val() && $(this).val() != '') {
			if (validarEMAIL($(this).val())) $(this).setOK();
			else $(this).setERRO();
		} else $(this).setDEFAULT();
	});
}

$.fn.validarCPF = function(mask) {
	$(this)
		.attr('maxlength', mask.length)
		.attr('size', mask.length)
		.focus(function() {
			if ($(this).val() && $(this).val() != '') {
				if (validarCPF($(this).val())) $(this).setOK();
				else $(this).setDEFAULT();
			}
		})
		.blur(function() {
			if ($(this).val() != '') {
				if (validarCPF($(this).val())) $(this).setOK();
				else $(this).setERRO();
			} else $(this).setDEFAULT();
		})
		.live('keyup keypress', function() {
			if ($(this).attr('maxlength') == $(this).val().length) {
				if (validarCPF($(this).val())) $(this).setOK();
				else $(this).setERRO();
			} else $(this).setDEFAULT();
		});
}

$.fn.validarCNPJ = function(mask) {
	$(this)
		.attr('maxlength', mask.length)
		.attr('size', mask.length)
		.focus(function() {
			if ($(this).val() && $(this).val() != '') {
				if (validarCNPJ($(this).val())) $(this).setOK();
				else $(this).setDEFAULT();
			}
		})
		.blur(function() {
			if ($(this).val() != '') {
				if (validarCNPJ($(this).val())) $(this).setOK();
				else $(this).setERRO();
			} else $(this).setDEFAULT();
		})
		.live('keyup keypress', function() {
			if ($(this).attr('maxlength') == $(this).val().length) {
				if (validarCNPJ($(this).val())) $(this).setOK();
				else $(this).setERRO();
			} else $(this).setDEFAULT();
		});
}

function validarNUMERO(N) {
	if (N && !isNaN(N)) return true;
	else return false;
}

function validarNOME(NOME) {
	var tmp = NOME.split(' ');

	if (tmp.length > 1 && isNaN(tmp[0]) && tmp[0].length > 1 && isNaN(tmp[1]) && tmp[1].length > 1) return true;
	else return false;
}

function validarDATA(DATA) {
	var tmp = DATA.split('/');

	var dia = tmp[0];
	var mes = tmp[1];
	var ano = tmp[2];

	if (dia < 01 || (dia < 01 || dia > 30) && (mes == 04 || mes == 06 || mes == 09 || mes == 11) || dia > 31) return false;
	if (mes < 01 || mes > 12) return false;
	if (mes == 2 && (dia < 01 || dia > 29 || (dia > 28 && (parseInt(ano / 4) != ano / 4)))) return false;
	if (!ano || ano.length != 4 || ano < 1900) return false;

	return true;
}

function validarHORA(HORA) {
	var tmp = HORA.split(':');

	var h = tmp[0];
	var i = tmp[1];

	if (!h || h.length != 2 || (h < 00 || h > 23)) return false;
	if (!i || i.length != 2 || (i < 00 || i > 59)) return false;

	return true;
}

function validarCPF(CPF) {
	CPF = limparValor(CPF);
	if (CPF && CPF != '') {
		var teste = (
			CPF.length != 11 || CPF == '00000000000'
			|| CPF == '11111111111' || CPF == '22222222222' || CPF == '33333333333'
			|| CPF == '44444444444' || CPF == '55555555555' || CPF == '66666666666'
			|| CPF == '77777777777' || CPF == '88888888888' || CPF == '99999999999'
		) ? false : true;

		var soma = 0;
		for (i = 0; i < 9; i++) soma += parseInt(CPF.charAt(i)) * (10 - i);
		resto = 11 - (soma % 11);
		if (resto == 10 || resto == 11) resto = 0;
		var digito1 = (resto != parseInt(CPF.charAt(9))) ? false : true;

		var soma = 0;
		for (i = 0; i < 10; i++) soma += parseInt(CPF.charAt(i)) * (11 - i);
		resto = 11 - (soma % 11);
		if (resto == 10 || resto == 11) resto = 0;
		var digito2 = (resto != parseInt(CPF.charAt(10))) ? false : true;

		if (teste && digito1 && digito2) return true;
		else return false;
	}
}

function validarCNPJ(CNPJ) {
	CNPJ = limparValor(CNPJ);
	if (CNPJ && CNPJ != '') {
		var teste = (CNPJ.length != 14) ? false : true;

		var a = [];
		var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];

		var soma = 0;
		for (i = 0; i < 12; i++) {
			a[i] = CNPJ.charAt(i);
			soma += a[i] * c[i + 1];
		}
		if ((resto = soma % 11) < 2) a[12] = 0;
		else a[12] = 11 - resto;

		var soma = 0;
		for (i = 0; i < 13; i++) soma += (a[i] * c[i]);
		if ((resto = soma % 11) < 2) a[13] = 0;
		else a[13] = 11 - resto;

		if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])) return false;

		if (!teste) return false;
		else return true;
		return true;
	}
}

acabei de identificar um na validação do e-mail

ta faltando pegar o tamanho da extensão do domínio...

if (usuario.length < 3 || dominio.length < 2 || extensao < 2) return false;

if (usuario.length < 3 || dominio.length < 2 || extensao.length < 2) return false;

Maxlength Para <Textarea> Com Jquery

23/04/2010, 11:51

meu primeiro post no forum...
não sou nenhum fera com jquery ou javascript ainda, mas desenvolvi uma função que faz funcionar o maxlength para textarea.
estou tentando usar o menor número possível de plugins para JQuery, uma vez que ele, por si só, já é um script "monstro" rsrs.
por isso resolvi quebrar a cuca e fazer isso.

basta adicionar o atributo maxlength normalmente...
<textarea name="mensagem" id="mensagem" maxlength"32"></textarea>

e adicionar o script:
$('#mensagem').keypress(function(){
	var length = $(this).val().length - 1;
	var maxlength = $(this).attr('maxlength') - 1;
	if (length >= maxlength) {
		$(this).val($(this).val().substring(length - maxlength, length));
	}
})

aqui comigo funcionou certinho. espero ter ajudado alguem.

IPB Skin By Virteq