2017-05-05 1 views
2

Solution:Ajouter un masque dans un champ de saisie de texte dans Symfony 3.1.1 forme

a résolu le problème! Au lieu d'installer le plugin via le composeur, j'ai copié et collé manuellement le contenu du fichier jquery-mask js et l'ai importé. :)

Question:

Je dois ajouter un masque dans un champ de texte d'un formulaire Symfony 3.1.1. C'est la forme que je suis rendu:

{# 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> 

Je veux ajouter le masque pour le champ du PCF, qui devrait avoir le format suivant: "_ _ _ _ _ _ _ _ _ - _ _..". Je veux dire, "3 chiffres point 3 chiffres point 3 chiffres barre oblique 2 chiffres".

J'ai essayé d'utiliser javascript en référence à l'identifiant d'entrée, mais je n'ai pas réussi.

+0

Avez-vous essayé avec un espace réservé? '' attr ': {' class ':' formularioRegistrio ',' espace réservé ':' ___.___.___.__ '}}) 'ou mieux d'en ajouter un dans le fichier de type FormBuilder –

Répondre

2

Utilisez ce plugin jquery.

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

Dans le formulaire:

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

Oui, j'ai essayé celui-ci. Mais il nécessite Symfony 2.8, j'utilise la version 3.1. Voici le message que j'obtiens en essayant d'installer via composer: "it/input-mask-bundle 1.1.0 nécessite symfony/framework-bundle ~ 2.8" –

+0

N'utilise pas le bundle, est obsolète, ne comprend que le fichier js dans vos scripts et utilisez comme n'importe quel autre plugin jquery à utiliser avec toutes les entrées en utilisant "data-mask" – rafrsr

0

Voulez-vous dire un espace réservé? Si oui, si votre classe de formulaire:

use Symfony\Component\Form\Extension\Core\Type\TextType; 

$builder->add('property', TextType::class, array(
    'required' => false, 
    'placeholder' => '_ _ _ . _ _ _ . _ _ _ - _ _' 
)); 
+0

Le problème avec l'attribut placeholder est, il ne sera plus visible une fois que l'utilisateur commence à taper et n'applique pas un format donné (bien que la validation de votre backend par la suite devrait le faire de toute façon pour être sûr). L'option d'espace réservé pourrait être assez basée sur le cas d'utilisation mais peut-être quelque chose de plus sophistiqué comme https://igorescobar.github.io/jQuery-Mask-Plugin/ (l'exemple avec l'option placeholder) est ce qu'il cherche – Joe

+0

Joe est à droite sur celui-ci, un espace réservé ne sera pas suffisant. Mais j'ai besoin d'installer ce bundle et il nécessite Symfony 2.8, j'utilise la version 3.1. –