Подтвердить что ты не робот

Заполнитель тегов текстового поля, возвращающийся в качестве значения

У меня есть форма, и внутри формы есть text_field_tag. Это написано как...

<%= text_field_tag "search",  :placeholder => 'Enter search term...' %>

Однако, когда HTML сгенерирован, он возвращается в источнике страницы...

<input id="search" name="search" type="text" value="{:placeholder=&gt;&quot;Enter search 
term...&quot;}" />

Почему он это делает и как его исправить, чтобы работа с заполнителем работала?

4b9b3361

Ответ 1

Второй параметр text_field_tag ​​- это значение. Дайте ему пустое пустое:

<%= text_field_tag "search", nil, :placeholder => 'Enter search term...' %>

И присвойте String значение по умолчанию:

<%= text_field_tag "search", 'Enter search term...' %>

Добавьте событие onclick, чтобы удалить его с помощью jQuery:

<%= text_field_tag "search", 'Enter search term...', :onclick => 'if($(this).val()=="Enter search term..."){$(this).val("");};' %>

Изменить 2016:

В настоящее время большинство браузеров теперь поддерживают HTML 5 placeholder, что позволяет нам сделать это более чистым способом:

<%= text_field_tag 'search', nil, placeholder: 'Enter search term' %>
# which produces the following HTML:
<input type="text" value="" placeholder="Enter search term">

jsFiddle link