Ruby on Rails: 如何将占位符文本添加到 f.text_field?

如何将 placeholder文本添加到我的 f.text_field字段中,以便默认情况下文本是预先编写的,并且当用户在字段中单击时,文本将消失-允许用户输入新文本?

117939 次浏览

在视图模板中,设置默认值:

f.text_field :password, :value => "password"

在 Javascript 中(假设这里是 jquery) :

$(document).ready(function() {
//add a handler to remove the text
});

当 Rails> = 3.0时,您可以简单地使用 placeholder选项。

f.text_field :attr, placeholder: "placeholder text"

在 Rails 4中(使用 HAML) :

=f.text_field :first_name, class: 'form-control', autofocus: true, placeholder: 'First Name'

如果使用 rails 4+,这里有一个更简洁的语法

<%= f.text_field :attr, placeholder: "placeholder text" %>

因此 rails 4+现在可以使用这种语法而不是哈希语法

对于那些使用 Rails (4.2)国际化(I18n)的用户:

将占位符属性设置为 true:

f.text_field :attr, placeholder: true

并且在您的本地文件(即 en.yml)中:

en:
helpers:
placeholder:
model_name:
attr: "some placeholder text"

我尝试了上面的解决方案,它看起来像在轨道5。* 默认情况下,第二个参数是输入表单的值,对我有效的是:

text_field_tag :attr, "", placeholder: "placeholder text"

这条路对我有用。

<%= form_for @product do |f| %>
<%= f.label :name %>
<%= f.text_field :name, placeholder: "Drill hammer" %>
<% end %>

如您所见,要实现一个占位符,您只需在 text _ field 名称后面添加“占位符: “ text here”。

希望大家能够理解我的回答!