Search code examples
phpsymfonymask

Add mask in an input text field in Symfony 3.1.1 form


Solution:

Solved it! Instead of installing the plugin via the composer, I manually copied and pasted the jquery-mask js file content and imported it. :)

Question:

I need to add a mask into a text field of a Symfony 3.1.1 form. This is the form I am rendering:

{# E-mail // Usuario #}
<div class="row">
    <div class="col-md-5  col-md-offset-1">
        E-mail<span style="color: #217db1;">*</span></br>
        {{ form_widget(form.email, { 'attr': {'class': 'formularioRegistro'} }) }}
        {{ form_errors(form.email) }}
    </div>
</div>

<div class="row">
    {# CPF #}
    <div class="col-md-5 col-md-offset-1">
        CPF (somente números)<span style="color: #217db1;">*</span></br>
        {{ form_widget(form.cpf, { 'attr': {'class': 'formularioRegistro'} }) }}
        {{ form_errors(form.cpf) }}
    </div>
</div>

I want to add the mask for the CPF field, which should have the following format: "_ _ _ . _ _ _ . _ _ _ - _ _". I mean, "3 digits point 3 digits point 3 digits slash 2 digits".

I tried to use javascript referencing the input id, but had no success.


Solution

  • Use this jquery plugin.

    https://igorescobar.github.io/jQuery-Mask-Plugin/

    In the Form:

    $builder->add(
                'property', TextType::class, array(
                'required' => false,
                'attr' => ['data-mask' => '000.000.000-00']
                'placeholder' => '_ _ _ . _ _ _ . _ _ _ - _ _'
            ));