Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dian Carlos

Como escrever dentro de uma combo box?

Recommended Posts

Olá amigos do iMasters.

 

Estou em um projeto onde devo criar um formulário com vários campos, e um desses campos deve receber um CPF ou CNPJ. Ele me desenhou uma combo box onde o cliente seleciona CPF ou CNPJ e escreve no próprio option.

 

Segue abaixo o modelo da combo box:

 

combo.jpg

 

Tem como fazer isso? Existe algum plugin que atenda a minha necessidade?

 

Desde já agradeço a ajuda de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado @Prog, plugin muito bom.. Agora uma dúvida.. Tem como eu por uma mascara para a pessoa digitar o número do documento corretamente? Tentei usar o Masked Input Plugin (http://digitalbush.com/projects/masked-input-plugin/) só que os valores sumiram.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ter tem, mas não sei se esses plugins serão compatíveis, se não, terá que programar algo próprio e verificar se alguém criou algo específico como você precisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu costumo usar este script...

Dentro das tags head coloco este código:

<script>

//--->Função para a formatação dos campos...<---
function Mascara(tipo, campo, teclaPress) {
        if (window.event)
        {
                var tecla = teclaPress.keyCode;
        } else {
                tecla = teclaPress.which;
        }
 
        var s = new String(campo.value);
        // Remove todos os caracteres à seguir: ( ) / - . e espaço, para tratar a string denovo.
        s = s.replace(/(\.|\(|\)|\/|\-| )+/g,'');
 
        tam = s.length + 1;
 
        if ( tecla != 9 && tecla != 8 ) {
                switch (tipo)
                {
                case 'CPF' :
                        if (tam > 3 && tam < 7)
                                campo.value = s.substr(0,3) + '.' + s.substr(3, tam);
                        if (tam >= 7 && tam < 10)
                                campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,tam-6);
                        if (tam >= 10 && tam < 12)
                                campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,3) + '-' + s.substr(9,tam-9);
                break;
                case 'TEL' :
                        if (tam > 2 && tam < 4)
                                campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,tam);
                        if (tam >= 7 && tam < 11)
                                campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,4) + '-' + s.substr(6,tam-6);
                break;
                }
        }
}
//--->Função para verificar se o valor digitado é número...<---
function digitos(event){
        if (window.event) {
                // IE
                key = event.keyCode;
        } else if ( event.which ) {
                // netscape
                key = event.which;
        }
        if ( key != 8 || key != 13 || key < 48 || key > 57 )
                return ( ( ( key > 47 ) && ( key < 58 ) ) || ( key == 8 ) || ( key == 13 ) );
        return true;
}
</script>

 

E dentro do form este código:

<input name="nomedocampo" type="text" id="nomedocampo" onKeyPress="return digitos(event, this);" onKeyUp="Mascara('TEL',this,event);" maxlength="14" />

No caso acima é um campo para telefone, mas é só personalizar conforme suas necessidades. Para CPF é só trocar TEL por CPF.

O melhor é que ele só permite números, não deixa digitar nenhuma letra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas respostas, vou deixar no modo padrão do plugin mesmo pro que eu não estou com tempo pra pesquisar ou desenvolver alguma coisa que faça a mascara. Mas assim que tiver tempo eu vou fazer isso e postar aqui pra vocês, acho que seria de grande ajuda a todos.. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.