3
respostas

Como usar mascaras de formulários com o Laravel?

olá pessoal,

estou tentando colocar mascaras de telefone, cnpj, cpf, etc num projeto Laravel, meu layout:

<!--formularios.blade.php-->
<html>
    <body>
    @yield('conteudo')

    <script type="text/javascript" src="{{ asset('js/jquery.js') }}"></script>
    <script type="text/javascript" src="{{ asset('js/mask.js') }}"></script>
    @yield('scripts')
    </body>
</html>

meu formulário:

<!--formularioex.blade.php-->
@extends('layouts.formularios')
@section('conteudo')
    <form method="POST" action="">
        @csrf
        <div class="form-group">
            <label for="celular">Celular</label>
            <input id="celular" type="text" class="form-control" name="celular" required>
        </div>
    </form>
@endsection
@section('scripts')
    <script>
        $(document).ready(function(){
            $('#celular').mask('(99) 9 9999-9999');
        });
    </script>
@endsection

Não consigo entender pq não funciona...

3 respostas

Oi Jefferson, tudo bom?

É dificil falar só batendo o olho no código. Olhando por cima parece tudo certo. Rola algum erro no console do seu navegador (atalho f12 no chrome)?

Uma alternativa ao plugin mask.js é o input-mask que eu costumo usar sempre e nunca tive mto problema.

No console aparece:

Uncaught TypeError: $(...).mask is not a function at HTMLDocument. (nova:104) at l (jquery.js:2) at c (jquery.js:2)

A linha 104 é:

$('#celular').mask('(99) 9 9999-9999');

Coloquei:

console.log("teste");

antes da linha que deu erro e a string apareceu no console normalmente...

Fiz alguns testes fora do laravel e funcionou certinho, com os mesmos arquivos, estou suspeitando do blade...