我有一个表单,里面有一个text_field_tag。它是这样写的
<%= text_field_tag "search",:placeholder => 'Enter search term...' %>
<input id="search" name="search" type="text" value="{:placeholder=>"Enter search term..."}" />
为什么这样做,我如何解决它,以便占位符工作?
解决方法
text_field_tag的第二个参数是值。给它没有空:
<%= text_field_tag "search",nil,:placeholder => 'Enter search term...' %>
并给它一个字符串以具有默认值:
<%= 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
,这样我们可以用更干净的方法来实现:
<%= text_field_tag 'search',placeholder: 'Enter search term' %> # which produces the following HTML: <input type="text" value="" placeholder="Enter search term">