Utilizando Formtastic e Inputs

December 4, 2009 by Jésus Lopes Comente! »

Alguns meses atrás escrevi um plugin chamado Inputs. Como pode ser lido neste post, o objetivo é facilitar a criação de máscaras em campos de formulário.

Após ter descoberto o Formtastic, passei a utilizar o mesmo em todos os projetos aqui na Zigotto. Gosto muito da maneira que ele me permite trabalhar e escrever o código mais limpo e organizado.

E com tudo isso, comecei a me perguntar:

  • O Inputs pode ser utlizado junto com o Formtastic?
  • Como unir os dois de uma maneira bem simples e continuar usando o Formtastic para trabalhar com os formulários?

Imaginei algo como:

<% semantic_form_for @product do |form| %>
  <%= form.input :price, :mask => :decimal %>
  <%= form.commit_button %>
<% end %>

Gostei! É exatamente isso que eu quero! :)

Inputs foi atualizado e agora é possível através da opção :mask informar qual o tipo de máscara que você quer inserir no campo do formulário!

Como usar?

  1. Instale e configure o Formtastic em seu projeto. Veja como fazer isso aqui.
  2. Instale e configure o plugin Inputs. Veja como fazer isso aqui.

Após tudo configurado, é possível se fazer isso:

<% semantic_form_for @customer do |form| %>
  <%= form.input :name %>
  <%= form.input :phone, :mask => :phone %>
  <%= form.input :cpf, :mask => :cpf %>
  <%= form.commit_button %>
<% end %>

Você pode utlizar outras máscaras já definidas:

  • phone
  • phone-us
  • cpf
  • cnpj
  • date
  • date-us
  • cep
  • time
  • cc
  • integer
  • decimal
  • decimal-us
  • signed-decimal-us

ou criar a sua própria máscara:

<% semantic_form_for @product do |form| %>
  <%= form.input :year, :mask => '9999' %>
  <%= form.input :phone, :mask => '99-9999-9999' %>
  <%= form.commit_button %>
<% end %>

Inputs utiliza o plugin meioMask para criar as máscaras, demais opções e configurações podem ser vista na própria página do meioMask.

Sugestões, criticas são bem vindas. O código esta no Github, fiquem a vontade para utilizar, modificar e compartilhar :)

Advertisement

2 Comentários

  1. Configurei o ‘formtastic’ na minha aplicação e tentei usar o inputs sem sucesso.

    Tenho o ‘jrails’ instalado e configurado corretamente, além do ‘inputs’. Os includes de javascript aparecem corretamente na página, e os forms aceitam a sintaxe do ‘inputs’.

    Porém, os inputs continuam sem máscara. O que pode estar acontecendo?

  2. Jésus Lopes says:

    Olá Murilo,

    Ao instalar o Inputs, um arquivo js é instalado dentro da pasta public/javascripts, este arquivo é o responsável por criar as máscaras.

    Tente rodar as tasks abaixo no terminal que os arquivos serão atualizados:

    rake inputs:install
    rake inputs:update

    Após, restarte o server e tente novamente.

    Abraço.

Deixe um comentário