我想在我的网页上的搜索框显示字“搜索”在灰色斜体。当框接收到焦点时,它看起来就像一个空文本框。如果其中已经有文本,则应该正常显示文本(黑色,非斜体)。这将帮助我避免混乱的标签。
顺便说一句,这是一个页面Ajax搜索,所以它没有按钮。
我想在我的网页上的搜索框显示字“搜索”在灰色斜体。当框接收到焦点时,它看起来就像一个空文本框。如果其中已经有文本,则应该正常显示文本(黑色,非斜体)。这将帮助我避免混乱的标签。
顺便说一句,这是一个页面Ajax搜索,所以它没有按钮。
当前回答
对于jQuery用户:naspinski的jQuery链接似乎坏了,但试试这个: http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/
你会得到一个免费的jQuery插件教程作为奖励。:)
其他回答
你可以很容易地有一个框读“搜索”,然后当焦点改变到它有文本被删除。就像这样:
< onfocus =“这个输入。价值=“类型”=“文本”=“搜索”/>
当然,如果你这样做,用户自己的文本将消失时,他们点击。所以你可能想要使用更健壮的东西:
<input name="keyword_" type="text" size="25" style="color:#999;" maxlength="128" id="keyword_"
onblur="this.value = this.value || this.defaultValue; this.style.color = '#999';"
onfocus="this.value=''; this.style.color = '#000';"
value="Search Term">
这叫做“水印”。
我找到了jQuery插件jQuery水印,不像第一个答案,它不需要额外的设置(原始答案也需要在表单提交之前进行特殊调用)。
现在变得很简单了。 在html中,我们可以为输入元素提供占位符属性。
e.g.
<input type="text" name="fst_name" placeholder="First Name"/>
查看更多详细信息:http://www.w3schools.com/tags/att_input_placeholder.asp
你想要这样分配给onfocus:
if (this.value == this.defaultValue)
this.value = ''
this.className = ''
这是onblur:
if (this.value == '')
this.value = this.defaultValue
this.className = 'placeholder'
(如果你愿意,你可以使用一些更聪明的东西,比如框架函数,来进行类名切换。)
用一些CSS像这样:
input.placeholder{
color: gray;
font-style: italic;
}
另一种选择,如果你想让这个特性只适用于较新的浏览器,可以使用HTML 5的占位符属性提供的支持:
<input name="email" placeholder="Email Address">
在没有任何样式的情况下,在Chrome中看起来是这样的:
你可以在这里和HTML5的CSS占位符样式中尝试演示。
一定要检查该特性的浏览器兼容性。Firefox的支持是在3.7中添加的。Chrome浏览器没问题。Internet Explorer只在10中添加了支持。如果你的目标浏览器不支持输入占位符,你可以使用jQuery插件jQuery HTML5占位符,然后添加以下JavaScript代码来启用它。
$('input[placeholder], textarea[placeholder]').placeholder();