Colocar nome no form (Struts 1.x) com taglib

4 respostas
K

Por favor, uso struts 1.x, tenho uma jsp e gostaria de validar cpf com um javascript que possuo, mas ele precisa informar o nome do meu form, porém quando tento inserir nome no form(<html:form [aqui]>) ele nao tem esta opção, alguma dica?

Desde ja agradeço muito, estarei no aguardo

Obrigado

4 Respostas

M

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

se o nome que você estiver falando for um atributo de identificação da tag você pode utilizar id = “identificação”

K

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

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;
                    }
                }
Criado 18 de junho de 2009
Ultima resposta 25 de fev. de 2010
Respostas 4
Participantes 4