我不知道这是否可能,但在我的 Rails 应用程序中,我目前可以将文本放入 text_field 中作为描述,而不是使用外部标签:
<% inside = "Search for Customers" %>
<%= text_field_tag :search, params[:search],
:style => "color:#aaa;",
:value => inside, #defined above
:onfocus => "if(this.getValue()=='#{inside}'){this.clear();this.style.color = '#000';}",
:onblur => "if(this.getValue()==''){this.setValue('#{inside}');this.style.color = '#aaa';}" %>
<%= submit_tag "Search", :name => nil %>
这很好用,但如果我不输入任何内容,它就会搜索“搜索客户”,这不是我想要的。有办法解决这个问题吗?
谢谢
编辑:
我已将 :onSubmit => "if(this.getValue()=='#{inside}'){this.clear();}"
添加到 text_field_tag,但是它仍然没有做任何事情。我还尝试过 :onbeforesubmit
甚至一个简单的 alert('test')
但由于某种原因它不起作用。
最佳答案
HTML5 中的输入有一个新的占位符属性,它完全符合您的要求,但还不适用于所有人。
http://diveintohtml5.ep.io/detect.html#input-placeholder
您可以使用它,并为使用旧版浏览器的用户使用 onsubmit 事件来填充和清除字段。
关于javascript - 如果未提交任何内容,则清除文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3699178/