Html 文本字段的类型属性

Html 文本字段的类型属性,html,ruby-on-rails,input,types,textfield,Html,Ruby On Rails,Input,Types,Textfield,我有以下代码: <%= f.text_field :email, :type => "email", :placeholder => "john@example.com" %> “电子邮件”,占位符=>“john@example.com" %> 因此,人们可以用电子邮件键盘而不是ASCII键盘在iPhone上输入电子邮件。然而,输出是: <input id="user_email" name="user[email]" placeholder="john@exa

我有以下代码:

<%= f.text_field :email, :type => "email", :placeholder => "john@example.com" %>
“电子邮件”,占位符=>“john@example.com" %>
因此,人们可以用电子邮件键盘而不是ASCII键盘在iPhone上输入电子邮件。然而,输出是:

<input id="user_email" name="user[email]" placeholder="john@example.com" size="30" type="text" />

应该是:

<input id="user_email" name="user[email]" placeholder="john@example.com" size="30" type="email" />

我还想把它用于
tel
类型,这样人们就可以得到电话号码键盘


有没有办法强制Rails使用
电子邮件
类型而不是
文本
,或者我必须直接使用HTML?谢谢

使用当前帮助程序无法执行此操作()“返回为访问指定属性而定制的“文本”类型的输入标记…”

我会写一个助手来保持你的代码更好。您可以使用HTML和所需的选项编写一些内容,也可以添加一些内容来使用FormBuilder,如下面的代码段

module ActionView
  module Helpers
    class FormBuilder
      def tel_field(method, options = {})
        InstanceTag.new(@object_name, method, self, options.delete(:object)).to_input_field_tag("tel", options)
      end
    end
  end
end

实际上,在Rails 3中有用于此目的的表单帮助程序:
“电话”字段和“电子邮件”字段的工作方式与“文本”字段类似,但按预期设置它们的类型属性。

这可以正常工作,但当字段无效时,它不会被包装。