Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change rails text_field form builder type

I've been looking at the new options available in HTML5 forms, such as declaring input types as "email", "url", and "number", as described here.

How can I use these in conjunction with the rails form builders? I have tried

<% form_for @user do |f| %>
  <%= f.email :email, {:placeholder => '[email protected]'} %>
<% end %>

But that does not work. I've also tried

<% form_for @user do |f| %>
  <%= f.text_field :email, {:placeholder => '[email protected]', :type  => :email} %>
<% end %>

But the type is still "text" and not overridden. Is it possible, or is this something that will need to be addressed in Rails itself?

like image 742
Ryan Avatar asked Jan 05 '10 02:01

Ryan


1 Answers

Looks like there is currently an open ticket and patch for adding the HTML5 form input types. If you can't wait until the patch is accepted, you could apply the patch locally by freezing the actionpack gems and applying the patch or making an initializer that add the extra methods.

Of course the other option is adding the fields manually without a form helper:

<% form_for @user do |f| %>
  <%= tag(:input, {:type => :email, :value => f.object.email} %>
<% end %>
like image 80
rnicholson Avatar answered Sep 30 '22 05:09

rnicholson