amarkes / br-mask

MIT License
116 stars 56 forks source link

Mascara de telefone, corta o ultimo número. #23

Open lbdonato opened 5 years ago

lbdonato commented 5 years ago

Olá, Quando defino uma mask do tipo telefone: [brmasker]="{form: formulario.get('celular'), phone: true}"

e o campo já vem preenchido: celular: [this.cliente.celular, [Validators.required, Validators.minLength(10)]],

Quando o campo recebe o focus, ele excluir o último número do celular. Repare que só acontece com números de celular, (99)99999-9999, caso o número tenha um número a menos, como o fixo (99)9999-9999, funciona normal. Ionic:

Ionic CLI : 5.1.0 (C:\Users\Donato\AppData\Roaming\npm\node_modules\ionic) Ionic Framework : @ionic/angular 4.6.2 @angular-devkit/build-angular : 0.13.9 @angular-devkit/schematics : 7.3.9 @angular/cli : 7.3.9 @ionic/angular-toolkit : 1.5.1

Cordova:

Cordova CLI : not installed Cordova Platforms : not available Cordova Plugins : not available

Utility:

cordova-res : not installed native-run : not installed

System:

NodeJS : v10.16.0 (C:\Program Files\nodejs\node.exe) npm : 6.9.0 OS : Windows 10

lbdonato commented 5 years ago

Descobri o problema, como estou trazendo número sem formatação, ele aplica a mask errada de telefone.

Fiz uma alteração, e resolveu meu problema. Na verificação de qual mascara utilizar, adiciona para verificar se 11 dígitos, significa que é o telefone de 15 dígitos, porém sem formatação, em outros caso pode formatar com a mask de 14 dígitos.

BrMaskDirective.prototype.phoneMask = function (value) { var formValue = value; if (formValue.length > 14 || formValue.length == 11) {

Luciano Donato

lucianojs commented 5 years ago

@lbdonato Estou com o mesmo problema reportado, contudo não entendi onde foi realizada a alteração, poderia me auxiliar com isto?

lbdonato commented 5 years ago

Dentro da pasta do projeto procure por: node_modules/br-mask/dist/directives/br-mask.js

O código fica por volta da linha 231

amarkes commented 5 years ago

conseguem alterar no código?

lucianojs commented 5 years ago

Posso tentar um pull request mas só na semana que vem, estou em viagem.