2012-11-20 12 views
17

Ich habe ein Formular und in das Formular gibt es ein Text_field_tag. Es ist, als dies geschrieben ...Text Feld Tag Platzhalter als Wert

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

Wenn jedoch die HTML erzeugt wird dies auf der Seite Quelle zurück ...

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

Warum es dies tut und wie behebe ich es so dieser Platzhalter funktioniert?

Antwort

36

Der zweite Parameter des text_field_tag ​​ist der Wert. Geben Sie ihm nil es leer zu haben:

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

Und es einen String geben einen Standardwert haben soll:

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

ein Onclick-Ereignis hinzufügen es mit jQuery zu leeren:

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

Bearbeiten 2016:

Heutzutage unterstützen die meisten Browser jetzt die HTML 5 placeholder, die uns dies ermöglicht s in einer sauberere Art und Weise:

<%= 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

Dumme Fehler von mir. Vielen Dank. – jason328

+0

Gern geschehen :) Können Sie meinen Beitrag als Antwort bitte überprüfen? – MrYoshiji

+0

Ja, tut mir leid. Ich wollte, als ich mit etwas CSS spielte und abgelenkt wurde. – jason328

Verwandte Themen