Як я можу додати placeholder
текст до моїх f.text_field
полів, щоб текст був попередньо написаний за замовчуванням, а коли користувач натискає всередину полів, текст відходить, що дозволяє користувачеві вводити новий текст?
Як я можу додати placeholder
текст до моїх f.text_field
полів, щоб текст був попередньо написаний за замовчуванням, а коли користувач натискає всередину полів, текст відходить, що дозволяє користувачеві вводити новий текст?
Відповіді:
З рейками> = 3.0 ви можете просто скористатися placeholder
опцією.
f.text_field :attr, placeholder: "placeholder text"
f.text_field :attr, :placeholder => "placeholder text"
Для тих, хто використовує рейли (4.2) Інтернаціоналізація (I18n):
Встановіть атрибут заповнення на true:
f.text_field :attr, placeholder: true
і у вашому локальному файлі (тобто en.yml):
en:
helpers:
placeholder:
model_name:
attr: "some placeholder text"
placeholder: true
. Після налаштування такого, як ви описали, він працював.
Ось набагато чистіший синтаксис, якщо використовується rails 4+
<%= f.text_field :attr, placeholder: "placeholder text" %>
Тому rails 4+
тепер можна використовувати цей синтаксис замість хеш-синтаксису
Я спробував рішення вище, і це виглядає як на рейках 5. * другим об'єктом за замовчуванням є значення форми вводу, що для мене працювало:
text_field_tag :attr, "", placeholder: "placeholder text"
У шаблоні перегляду встановіть значення за замовчуванням:
f.text_field :password, :value => "password"
У вашому Javascript (якщо припустити jquery тут):
$(document).ready(function() {
//add a handler to remove the text
});
onfocus="if(this.value=='Search The Huffington Post')this.value=''" value="Search The Huffington Post"
Схоже, хороший підхід.