mark_domi 18 de jun. de 2009
1º Não endendi seu problema com validação de CPF
2º a declaração de form no struts é assim
<html:form action="/nomedaaction">
onde o nomedaaction é mapeada no struts-config.xml.
e onde você mapeia o “/nomedaaction”, lá você informa qual o nome do seu form.
vinicius_roc 18 de jun. de 2009
se o nome que você estiver falando for um atributo de identificação da tag você pode utilizar id = “identificação”
Khartoum 19 de jun. de 2009
Obrigado à todos os retornos.
Eu coloquei em o nome de meu em meu javascript e deu certo!
Pena que meu javascript valida cpf sem máscara e preciso com. Alguém teria um js validaCpf(); para me ajudar?
Agradecido
wellingtonsv 25 de fev. de 2010
Veio não sei se isso pode te ajudar…
/**
* Verifica se o campo é do tipo Cpf ou Cnpj
* Campos não são checados se estiverem desabilitados
* <p>
* @param form o form que está sendo validado
*/
function validateCpfCnpj ( form ) {
var bValid = true ;
var focusField = null ;
var i = 0 ;
var fields = new Array ();
var formName = form . getAttributeNode ( "name" );
oCpfCnpj = eval ( ' new cpfCnpj () ' );
for ( x in oCpfCnpj ) {
var field = form [ oCpfCnpj [ x ][ 0 ]];
if (( field . type == ' hidden ' ||
field . type == ' text ' ||
field . type == ' textarea ' ||
field . type == ' select - one ' ||
field . type == ' radio ' ) &&
field . disabled == false ) {
var value = '' ;
// get field's value
if ( field . type == "select-one" ) {
var si = field . selectedIndex ;
if ( si >= 0 ) {
value = field . options [ si ]. value ;
}
} else {
value = field . value ;
}
if ( value . length > 0 ) {
if ( value . length == 11 ) {
if ( ! validaCPF ( null , value , false )) {
bValid = false ;
}
} else if ( value . length == 14 ) {
if ( ! validaCNPJ ( null , value , false )) {
bValid = false ;
}
} else {
bValid = false ;
}
if ( bValid == false ) {
if ( i == 0 ) {
focusField = field ;
}
fields [ i ++ ] = oCpfCnpj [ x ][ 1 ];
}
}
}
}
if ( fields . length > 0 ) {
focusField . focus ();
alert ( fields . join ( '\n' ));
}
return bValid ;
}
function validaCPF ( obj , str , alerta ) {
var numero ;
var digito = new Array ( 10 ); // array para os dÃ?Æ?Ã?Âgitos do CPF.
var aux = 0 ; // Ã?Æ?Ã?Ândice para a string num.
var posicao
var i
var soma
var dv
var dvInformado ;
if ( obj != null ) {
str = obj . value ;
}
numero = str ;
// Retira os dÃ?Æ?Ã?Âgitos formatadores de CPF '.' e '-', caso existam.
if ( str . length > 0 ) {
while (( str . indexOf ( '.' ) != -1 ) || ( str . indexOf ( '-' ) != -1 )) {
if ( str . indexOf ( '.' ) != -1 ) {
aux = str . indexOf ( '.' );
str = str . substr ( 0 , aux ) + str . substr ( aux + 1 , str . length -1 );
}
if ( str . indexOf ( '-' ) != -1 ) {
aux = str . indexOf ( '-' );
str = str . substr ( 0 , aux ) + str . substr ( aux + 1 , str . length -1 );
}
} //while
} //if
//verifica CPFs manjados
switch ( str ) {
case '0' :
case ' 00 ' :
case ' 000 ' :
case ' 0000 ' :
case ' 00000 ' :
case ' 000000 ' :
case ' 0000000 ' :
case ' 00000000 ' :
case ' 000000000 ' :
case ' [ telefone removido ] ' :
case ' [ telefone removido ] ' :
case ' [ telefone removido ] ' :
case ' [ telefone removido ] ' :
case ' [ telefone removido ] ' :
case ' [ telefone removido ] ' :
case ' [ telefone removido ] ' :
case ' [ telefone removido ] ' :
case ' [ telefone removido ] ' :
case ' [ telefone removido ] ' :
case ' [ telefone removido ] ' :
//alert('CPF inválido: ' + numero);
return false ;
}
// InÃ?Æ?Ã?Âcio da validaÃ?Æ?Ã?§Ã?Æ?Ã?£o do CPF.
/* Retira do número informado os dois Ã?Æ?Ã?ºltimos dÃ?Æ?Ã?Âgitos */
dvInformado = str . substr ( 9 , 2 );
/* Desmembra o nÃ?Æ?Ã?ºmero do CPF no array digito */
for ( i = 0 ; i <= 8 ; i ++ ) {
digito [ i ] = str . substr ( i , 1 );
}
/* Calcula o valor do 10o. digito de verificação */
posicao = 10 ;
soma = 0 ;
for ( i = 0 ; i <= 8 ; i ++ ) {
soma = soma + digito [ i ] * posicao ;
posicao -- ;
}
digito [ 9 ] = soma % 11 ;
if ( digito [ 9 ] < 2 ) {
digito [ 9 ] = 0 ;
} else {
digito [ 9 ] = 11 - digito [ 9 ];
}
/* Calcula o valor do 11o. digito de verificação */
posicao = 11 ;
soma = 0 ;
for ( i = 0 ; i <= 9 ; i ++ ) {
soma = soma + digito [ i ] * posicao ;
posicao -- ;
}
digito [ 10 ] = soma % 11 ;
if ( digito [ 10 ] < 2 ) {
digito [ 10 ] = 0 ;
} else {
digito [ 10 ] = 11 - digito [ 10 ];
}
dv = digito [ 9 ] * 10 + digito [ 10 ];
/* Verifica se o DV calculado é igual ao informado */
if ( dv != dvInformado || str . length == 0 ) {
// exibe mensagem ao usuário
if ( alerta ) {
obj . value = '' ;
alert ( ' CPF invà ¡ lido : ' + numero );
}
if ( obj != null ) {
obj . focus ();
}
return false ;
} else {
return true ;
}
}
function validaCNPJ ( obj , str , alerta ) {
var mult , i , soma , dv , dvInformado ;
var digito = new Array ( 13 );
if ( obj != null ) {
str = obj . value ;
}
//alert(str);
if ( str == ' 00.000.000 / 0000-00 ' ) {
if ( alerta ) {
obj . value = '' ;
alert ( ' CNPJ invà ¡ lido : ' + str );
}
if ( obj != null ) {
obj . focus ();
}
return false
}
// Retira os dÃgitos formatadores de CNPJ '.', '/' e '-', caso existam.
if ( str . length > 0 ) {
while (( str . indexOf ( '.' ) != -1 ) || ( str . indexOf ( '-' ) != -1 )) {
if ( str . indexOf ( '.' ) != -1 ) {
aux = str . indexOf ( '.' );
str = str . substr ( 0 , aux ) + str . substr ( aux + 1 , str . length -1 );
}
if ( str . indexOf ( '-' ) != -1 ) {
aux = str . indexOf ( '-' );
str = str . substr ( 0 , aux ) + str . substr ( aux + 1 , str . length -1 );
}
if ( str . indexOf ( '/' ) != -1 ) {
aux = str . indexOf ( '/' );
str = str . substr ( 0 , aux ) + str . substr ( aux + 1 , str . length -1 );
}
} //while
} //if
//retira do numero informando os dois ultimos digitos
dvInformado = str . substr ( 12 , 2 );
//desmembra o numero do cnpj no array digito.
for ( i = 0 ; i <= 11 ; i ++ ) {
digito [ i ] = str . substr ( i , 1 );
}
//calcula o valor do 13 dÃgito de verificação
mult = 5 ;
soma = 0 ;
for ( i = 0 ; i <= 3 ; i ++ ) {
soma = soma + ( digito [ i ] * mult );
mult -- ;
}
mult = 9 ;
for ( i = 4 ; i <= 11 ; i ++ ) {
soma = soma + ( digito [ i ] * mult );
mult -- ;
}
digito [ 12 ] = soma % 11 ;
if ( digito [ 12 ] < 2 ) {
digito [ 12 ] = 0 ;
} else {
digito [ 12 ] = 11 - digito [ 12 ];
}
//calcula o valor do 14 digito verificador
mult = 6 ;
soma = 0 ;
for ( i = 0 ; i <= 4 ; i ++ ) {
soma = soma + ( digito [ i ] * mult );
mult -- ;
}
mult = 9 ;
for ( i = 5 ; i <= 12 ; i ++ ) {
soma = soma + ( digito [ i ] * mult );
mult -- ;
}
digito [ 13 ] = soma % 11 ;
if ( digito [ 13 ] < 2 ) {
digito [ 13 ] = 0 ;
} else {
digito [ 13 ] = 11 - digito [ 13 ];
}
//verifica se o digito calculado eh igual ao informado
dv = ( digito [ 12 ]) + '' + digito [ 13 ];
if ( dv != dvInformado ) {
if ( alerta ) {
obj . value = '' ;
alert ( ' CNPJ invà ¡ lido : ' + str );
}
if ( obj != null ) {
obj . focus ();
}
return false
} else {
return true ;
}
}