Ir para conteúdo

POWERED BY:

Arquivado

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

Lady01

Máscara não exibe campo telefone corretamente

Recommended Posts

Estou utilizando uma máscara para um campo telefone, de modo que aceite tanto 8 quanto 9 dígitos. Para entrada, ela funciona corretamente, mas para exibição ela só exibe 8 dígitos, mesmo que o telefone tenha 9.

Tô usando o plugin Masked Input do jQuery.

Meu código está assim:

[inline]
<tr>
<td id='telefone' align="right" width='<%=largura%>'>*Telefone:</td>
<td width='<%=largura2%>'>
<input class="telefone" type="text" id="formTelefone<%=tipo%>" maxlength="20" style='width:<%=largura3%>;' <%if fazconsulta then%>value="<%=telefone%>"<%end if%> onkeypress='if(event.keyCode == 13){ <%=VarString%> }' />
<script> $("#formTelefone<%=tipo%>").mask("(99) 9999-9999?9"); </script>
</td>
</tr>

[/inline]

 

Alguém ajuda?

Agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tenho um script que valida os novos ddd's. Pode ser util pra voce


var mcel = $('.telefone');


var options = {onKeyPress: function(cel){

var ddd = mcel.cleanVal().substring(0,2);

//console.log('o ddd: ', ddd);

var theMask = '';

if((ddd == 12) || (ddd == 13) || (ddd == 14)

|| (ddd == 15) || (ddd == 16) || (ddd == 17)

|| (ddd == 18) || (ddd == 19) || (ddd == 21)

|| (ddd == 22) || (ddd == 24) || (ddd == 27) || (ddd == 28)){

theMask = '(00) 90000-0000';

} else {

theMask = '(00) 0000-0000';

}


mcel.mask(theMask, this);

}};


mcel.mask('(00) 0000-0000', options);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Tenho um script que valida os novos ddd's. Pode ser util pra voce
var mcel = $('.telefone');
var options = {onKeyPress: function(cel){
var ddd = mcel.cleanVal().substring(0,2);
//console.log('o ddd: ', ddd);
var theMask = '';
if((ddd == 12) || (ddd == 13) || (ddd == 14)
|| (ddd == 15) || (ddd == 16) || (ddd == 17)
|| (ddd == 18) || (ddd == 19) || (ddd == 21)
|| (ddd == 22) || (ddd == 24) || (ddd == 27) || (ddd == 28)){
theMask = '(00) 90000-0000';
} else {
theMask = '(00) 0000-0000';
}
mcel.mask(theMask, this);
}};
mcel.mask('(00) 0000-0000', options);

 

Não é bem isso que eu preciso, mas obrigada.

Aqui ta funcionando normal... o.O

 

http://jsfiddle.net/2t1u7foq/

Isso eu consigo fazer. Mas quando trago o telefone do banco e o coloco no input que tem a máscara, ele só mostra 8 dígitos, mesmo que sejam 9 =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi... O value já vem preenchido então...

Bom, testando aqui, também funciona normalmente:

http://jsfiddle.net/2t1u7foq/1/

Se você trocar o value pra 9 ou 8 digitos continua mascarando corretamente. Imaginando que no banco ao inves de você salvar somente os numeros, você salva toda a formatação, alterei o value para ficar no formato da máscara. Também funciona normalmente.

http://jsfiddle.net/2t1u7foq/2/


Como o banco esta retornando o valor do telefone? da um console.log($("#formTelefone<%=tipo%>").val()) antes de aplicar a máscara e verifica se o conteúdo está retornando certinho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi... O value já vem preenchido então...

 

Bom, testando aqui, também funciona normalmente:

 

http://jsfiddle.net/2t1u7foq/1/

 

Se você trocar o value pra 9 ou 8 digitos continua mascarando corretamente. Imaginando que no banco ao inves de você salvar somente os numeros, você salva toda a formatação, alterei o value para ficar no formato da máscara. Também funciona normalmente.

 

http://jsfiddle.net/2t1u7foq/2/

 

 

Como o banco esta retornando o valor do telefone? da um console.log($("#formTelefone<%=tipo%>").val()) antes de aplicar a máscara e verifica se o conteúdo está retornando certinho.

Está salvando com a formatação:

(21)1234-56784

Eu consigo imprimir assim no asp também, mas quando é no input fica dificil.

Estou começando a achar que tem algum outro script, que eu ainda não vi e está controlando isso. Porque pelo que vi aqui e pelo que já pesquisei isso não é tão difícil assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É... Você esta usando a última versão do masked input? Pode ser algum bug que foi corrigido recentemente. Algumas últimas perguntas:

1. O console.log(), pouco antes da aplicação da mascara, está retornando o que? (21)1234-56784 mesmo?

 

2. No Banco de dados, está salvando a string completa do telefone? O corte pode ser do lado de lá. Ou até mesmo na variável no asp.

3. Tirando o .mask() do input, esta retornando o valor correto, ou, ainda assim, corta o último número? Porque, sua máscara está salvando com um espaço entre o DDD e o número, porém, pelo valor que você citou, este espaço não existe. Talvez em algum lugar do código exista essa limitação de 14 caracteres, quando deveria ser 15.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É... Você esta usando a última versão do masked input? Pode ser algum bug que foi corrigido recentemente. Algumas últimas perguntas:

 

1. O console.log(), pouco antes da aplicação da mascara, está retornando o que? (21)1234-56784 mesmo?

 

2. No Banco de dados, está salvando a string completa do telefone? O corte pode ser do lado de lá. Ou até mesmo na variável no asp.

 

3. Tirando o .mask() do input, esta retornando o valor correto, ou, ainda assim, corta o último número? Porque, sua máscara está salvando com um espaço entre o DDD e o número, porém, pelo valor que você citou, este espaço não existe. Talvez em algum lugar do código exista essa limitação de 14 caracteres, quando deveria ser 15.

Resolvi, era um outro script que estava executando mesmo além do que eu tinha apenas alterado. Apaguei um, para que fique outro rodando. O sistema que eu cuido é muito complexo, perco um tempo grande pra fazer coisas simples como essa.

Obrigada pela atenção.

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.