Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte para módulos, formas de pagamentos e formas de envio para OpenCart v1.x.
#48356
Bom dia, galera do OC!

Estou com a seguinte situação: Instalei um módulo chamado Campos de Cadastro do Brasil que é super prático e gratuito. Funcionou perfeitamente na hora.

Este é o módulo: http://www.opencart.com/index.php?route ... on_id=6120

A única coisa é que a mask (formatação) do campo telefone está sem o 9° digito.

Eu entrei em contato com o programador e ele me passou uma alteração simples a ser feita no arquivo XML. Eu fiz a alteração mas bugou tudo.

Como eu não sou programador e não tenho muito experiência nessa area, não duvido que fiz algo de errado na hora de modificar.

A modificação é simples. Só não sei se entendi direito como fazer. Principalmente as observações no final. Haha...

Código do XML original:
Código: Selecionar todos
/* Mascaras e Formatos */
if($('input.phone').length > 0) $('input.phone').mask('(99) 9999-9999');if($('input.date').length > 0) $('input.date').mask('99/99/9999');
if($('input.cpf').length > 0) $('input.cpf').mask('999.999.999-99');
if($('input.cnpj').length > 0) $('input.cnpj').mask('99.999.999/9999-99');
if($('input.alphanumeric').length > 0) $('input.alphanumeric').alphanumeric();
if($('input.numeric').length > 0) $('input.numeric').numeric();
Solução do programador:

Abra o arquivo XML do módulo e onde tiver a máscara do campo de telefone altere para o código abaixo:
Código: Selecionar todos
$('#fone1, #fone2').mask('(99) 9999-9999?9').on('focusout', function(event){
    var target,
        phone,
        element;

        target  = (event.currentTarget) ? event.currentTarget : event.srcElement;
        phone   = target.value.replace(/\D/g, '');
        element = $(target);

        element.unmask();

        if(phone.length > 10){
            element.mask('(99) 99999-999?9');
        }else{
            element.mask('(99) 9999-9999?9');
        }
});
if($('#fone1').val().length > 14){
    $('#fone1').unmask();
    $('#fone1').mask('(99) 99999-999?9');
}
if($('#fone2').val().length > 14){
    $('#fone2').unmask();
    $('#fone2').mask('(99) 99999-999?9');
}
Obs:
- Altere o nome do ID do campo: #fone1 e #fone2.
- Se o on() do jQuery não funcionar por conta da versão tente trocar pelo bind().

Código após eu modificá-lo:
Código: Selecionar todos
/* Mascaras e Formatos */
if($('input.phone').length > 0) $('#fone1, #fone2').mask('(99) 9999-9999?9').on('focusout', function(event){
var target,
phone,
element;

target  = (event.currentTarget) ? event.currentTarget : event.srcElement;
phone   = target.value.replace(/\D/g, '');
element = $(target);

element.unmask();

if(phone.length > 10){
element.mask('(99) 99999-999?9');
}else{
element.mask('(99) 9999-9999?9');
}
});
if($('#fone1').val().length > 14){
$('#fone1').unmask();
$('#fone1').mask('(99) 99999-999?9');
}
if($('#fone2').val().length > 14){
$('#fone2').unmask();
$('#fone2').mask('(99) 99999-999?9');
}
if($('input.date').length > 0) $('input.date').mask('99/99/9999');
if($('input.cpf').length > 0) $('input.cpf').mask('999.999.999-99');
if($('input.cnpj').length > 0) $('input.cnpj').mask('99.999.999/9999-99');
if($('input.alphanumeric').length > 0) $('input.alphanumeric').alphanumeric();
if($('input.numeric').length > 0) $('input.numeric').numeric();
Maaaas.... não funcionou! Alguém tem alguma ideia?

Utilizo OC versão 1.5.4, caso isso ajude.

Agradeceria MUITO se alguém me der uma mão com isso. Esté módulo é super útil para todos aqui.

Abraço!
#48443
Eu utilizo o próprio campo default do opencart. A extensão abaixo contem a mascará funcionando perfeitamente. Só precisa de vQMod.
Em todo caso, pode-se averiguar o XML e ver a diferença entre as mascaras já que ambos usam.
http://www.opencart.com/index.php?route ... search=cpf
#48548
luhciano escreveu:tire o ? e coloque o 9!
Se ele fizer isto, vai obrigar a pessoa a preencher o telefone com 9 dígitos sendo que nem todo
telefone obrigatoriamente tem os 9. Não vejo porque ele deveria tirar a ? e colocar o 9.