none
Preciso aplicar um mascara para este campo. Como podem ver ele deve validar cpf ou cnpj no mesmo campo. Alguém tem ideia de como fazer tal validação??? RRS feed

  • Pergunta

  • <div class="editor-label">
                @Html.LabelFor(model => model.CpfCnpj)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.CpfCnpj)
            </div>
    segunda-feira, 16 de setembro de 2013 18:52

Respostas

  • if($("#txtBox").tamanho > 11)
    {
        // Se trata de um CNPJ
        $("#txtBox").mascaraCNPJ;  
    }
    else
    {
        // Se trata de um CPF
        $("#txtBox").mascaraCPF;
    }

    Mais ou menos assim Kainã. 

    Abraço.


    Good Luck, Fernando Mamprin

    • Marcado como Resposta Kainã terça-feira, 17 de setembro de 2013 17:20
    terça-feira, 17 de setembro de 2013 12:14
  • A unica form de você saber se é um CPF ou CNPJ é pela quantidade de caracteres.

    Um CPF sempre vai ter 11 dígitos e um CNPJ 14.

    Deixa o campo sem mascara, quando o usuário digitar o número completo, você verificar a quantidade de caracteres, ai depois você valida os digito verificado e aplica a formatação.

    Outra possibilidade é você fixar isso a uma pergunta: Pessoa Física ou Jurídica. a ideia vai ser praticamente a mesma.


    Thiago Juliano Para criar inimigos não é necessário declara guerra. Basta dizer o que pensa. (Martin Lutherking)

    • Marcado como Resposta Kainã terça-feira, 17 de setembro de 2013 17:20
    terça-feira, 17 de setembro de 2013 13:31

Todas as Respostas

  • Cara tem um Plugin do JQuery chamado Masked Input, você pode utilizar ele para aplicar uma máscara de digitação no seu Input Text.

    A utilização é bem simples, importe as bibliotecas do JQuery e Masked Input, utilize o seletor JQuery de ID e chame o método MASK.

    Segue um exemplo abaixo...

    http://digitalbush.com/projects/masked-input-plugin/


    Leonardo Lourenço Silva


    segunda-feira, 16 de setembro de 2013 19:55
  • Já apliquei este plugin. Mas o que preciso é que na hora da digitação se eu digitar o numero de um cpf ele aplique mascara de cpf, ou se digitar cnpj ele aplique mascara de cnpj. 

    Obrigado.

    segunda-feira, 16 de setembro de 2013 20:15
  • Utilize o plugin jquery que o Leonardo falou, faça um if e valide o tamanho do texto caso ele seja maior que 11 se trata de um CNPJ.

    Espero ter ajudado. 


    Good Luck, Fernando Mamprin

    segunda-feira, 16 de setembro de 2013 20:20
  • Teria como mandar exemplo de sua aplicação Fernando Mamprin???
    segunda-feira, 16 de setembro de 2013 20:30
  • if($("#txtBox").tamanho > 11)
    {
        // Se trata de um CNPJ
        $("#txtBox").mascaraCNPJ;  
    }
    else
    {
        // Se trata de um CPF
        $("#txtBox").mascaraCPF;
    }

    Mais ou menos assim Kainã. 

    Abraço.


    Good Luck, Fernando Mamprin

    • Marcado como Resposta Kainã terça-feira, 17 de setembro de 2013 17:20
    terça-feira, 17 de setembro de 2013 12:14
  • A unica form de você saber se é um CPF ou CNPJ é pela quantidade de caracteres.

    Um CPF sempre vai ter 11 dígitos e um CNPJ 14.

    Deixa o campo sem mascara, quando o usuário digitar o número completo, você verificar a quantidade de caracteres, ai depois você valida os digito verificado e aplica a formatação.

    Outra possibilidade é você fixar isso a uma pergunta: Pessoa Física ou Jurídica. a ideia vai ser praticamente a mesma.


    Thiago Juliano Para criar inimigos não é necessário declara guerra. Basta dizer o que pensa. (Martin Lutherking)

    • Marcado como Resposta Kainã terça-feira, 17 de setembro de 2013 17:20
    terça-feira, 17 de setembro de 2013 13:31
  • <script>
        $(function () {        
            $("#text1").focus(function () {            
                $(this).unmask();
                $(this).val($(this).val().replace(/\D/g, ""));
            }).click(function () {
                $(this).val($(this).val().replace(/\D/g, "")).unmask();
            }).blur(function () {
                if ($(this).val().length == 11) {
                    $(this).mask("999.999.999-99");
                } else if ($(this).val().length == 14) {
                    $(this).mask("99.999.999/9999-99");
                }
            });
        });
    </script>
    Acredito que assim resolva! aonde tá #text1 coloque #CpfCnpj

    Fúlvio Cezar Canducci Dias


    terça-feira, 17 de setembro de 2013 14:09
  • Tem alguma maneira de incluir um keyup / change ? Ou algo do tipo...  
    terça-feira, 17 de setembro de 2013 19:44
  •   if ($('#txtCpf_Cnpj').length > 14) {
                    $('#txtCpf_Cnpj').mask('000.000.000-00', { reverse: false });
                }
                else
                {
                    $('#txtCpf_Cnpj').mask('00.000.000/0000-00', { reverse: false });
                }

    Usando Query Mask Plugin

    Abraço

    sexta-feira, 24 de abril de 2015 19:56