2012-11-20 13 views
17

私はフォームを持っていて、フォームの中にはtext_field_tagがあります。それはこのように書かれているHTMLが、これはページのソースに返し発生したとき...テキストフィールドタグプレースホルダ戻り値として

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

はしかし、...

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

は、なぜそれがこれを行うとどのように私はそれを修正しますされそのプレースホルダは機能しますか?

答えて

36

text_field_tagの2番目のパラメータは値です。

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

し、それにデフォルト値を持っている文字列を与える:それは空を持つようにnilをそれを与えることは

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

jQueryを使って、それを空にonclickイベントを追加します。

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

編集2016:

今日、ほとんどのブラウザではHTML 5 placeholderがサポートされていますきれいな方法でS:私が

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

jsFiddle link

+0

愚かな間違い。ありがとう。 – jason328

+0

あなたは歓迎です:)答えとして私のポストを確認できますか? – MrYoshiji

+0

申し訳ありません。私はいくつかのCSSで遊んでいて、気が散ってしまったときに行きました。 – jason328

関連する問題