web-dev-qa-db-fra.com

Ruby sur Rails: Comment puis-je ajouter du texte de substitution à un champ f.text_field?

Comment puis-je ajouter placeholder texte à mon f.text_field champs afin que le texte soit pré-écrit par défaut, et lorsqu'un utilisateur clique à l'intérieur des champs, le texte disparaît - permettant à l'utilisateur de saisir le nouveau texte?

134
NullVoxPopuli

Avec Rails> = 3.0, vous pouvez simplement utiliser l’option placeholder.

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

Dans Rails 4 (en utilisant HAML):

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

Pour ceux qui utilisent Rails (4.2) Internationalisation (I18n):

Définissez l'attribut d'espace réservé sur true:

f.text_field :attr, placeholder: true

et dans votre fichier local (c.-à-d. en.yml):

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

Voici une syntaxe beaucoup plus propre si vous utilisez Rails 4+

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

Alors Rails 4+ peut maintenant utiliser cette syntaxe au lieu de la syntaxe de hachage

2
Abhilash

Dans votre modèle de vue, définissez une valeur par défaut:

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

Dans votre Javascript (en supposant que jquery ici):

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

J'ai essayé les solutions ci-dessus et cela ressemble à Rails 5. *) le deuxième argument par défaut est la valeur du formulaire de saisie, ce qui a fonctionné pour moi était:

text_field_tag :attr, "", placeholder: "placeholder text"
0
hic