[Resolvido] value anulando função
Bom dia pessoal,
Estou tendo problemas com duas funções que estou utilizando em um input.
Quando uso as funções "mascara(this,cpf) e validaCpf(document.formulario.edtCpf);" com a segunda sem o .value a mascara funciona.
Se utilizo o "mascara(this,cpf) e validaCpf(document.formulario.edtCpf.value);", a validação funciona e a mascara não.
function validaCpf(num) {
//Feito Alteração em 29/05/2012 devido a Mascara do CPF - Éverton Leonardo
num = num.replace(".", "");
num = num.replace(".", "");
num = num.replace("-", "");
var i
var j
var soma
var aux
var digito
cpf = num
if (num.length > 10){
if (num.length != 11){
alert('Número do CPF Inválido! - falta algum número')
return false;
}
if (
num == "00000000000" ||
num == "11111111111" ||
num == "22222222222" ||
num == "33333333333" ||
num == "44444444444" ||
num == "55555555555" ||
num == "66666666666" ||
num == "77777777777" ||
num == "88888888888" ||
num == "99999999999"
){
alert('Número do CPF Inválido ! - repetição total de números')
document.formulario.edtCpf.focus();
return false;
}
aux = num.substr(0, num.length-2);
for (j=1; j<=2; j++){
soma = 0;
for (i=0; i<=aux.length-1; i++){
soma = soma + (aux.substr(aux.length - 1 - i, 1) * (i + 2) * 10);
}
aux = aux + "01234567890".substr((soma % 11), 1);
}
if (aux != num){
alert('O Número de CPF informado é Inválido')
document.formulario.edtCpf.value = ""
document.formulario.edtCpf.focus();
return false;
}
if (aux == num){
return true;
}
}
}
function mascara(o, f) {
v_obj = o
v_fun = f
setTimeout("execmascara()", 1)
}
function execmascara() {
v_obj.value = v_fun(v_obj.value)
}
function soNumeros(v) {
return v.replace(/\D/g, "")
}
function cpf(v) {
v = v.replace(/\D/g, "") //Remove tudo o que não é dígito
v = v.replace(/(\d{3})(\d)/, "$1.$2") //Coloca um ponto entre o terceiro e o quarto dígitos
v = v.replace(/(\d{3})(\d)/, "$1.$2") //Coloca um ponto entre o terceiro e o quarto dígitos
//de novo (para o segundo bloco de números)
v = v.replace(/(\d{3})(\d{1,2})$/, "$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
return v
}
<td><input id="edtCpf" name="edtCpf" type="text" class="caixa" size="14" maxlength="14" value="<% Response.Write(stNrCpf) %>" onblur="mascara(this,cpf);" onkeypress="somenteNumeros(document.formulario.edtCpf);mascara(this,cpf);validaCpf(document.formulario.edtCpf.value); return SubmitEnter(this,event);" />
Valeu!!
Discussão (3)
Carregando comentários...