Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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á.
Aqui ta funcionando normal... o.O
>
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
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 =/
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.
>
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.
É... 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.
>
É... 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.
Tenho um script que valida os novos ddd's. Pode ser util pra voce