我有一个表单输入,里面有示例搜索关键字。
当用户对输入进行聚焦时,文本消失,如果输入中没有任何内容,则在未聚焦时文本会重新出现。
这一切都很好并且效果很好,但我想做的是让示例文本变灰,然后在用户实际输入时使用正常的纯色。
以下是我目前正在使用的代码。任何帮助都会很棒!
$(function() {
$('input').each(function() {
$.data(this, 'default', this.value);
}).focus(function() {
if (!$.data(this, 'edited')) {
this.value = "";
}
}).change(function() {
$.data(this, 'edited', this.value != "");
}).blur(function() {
if (!$.data(this, 'edited')) {
this.value = $.data(this, 'default');
}
});
});
答案 0 :(得分:5)
喜欢这个吗?
$(function() {
$('input').each(function() {
$.data(this, 'default', this.value);
}).css("color","gray")
.focus(function() {
if (!$.data(this, 'edited')) {
this.value = "";
$(this).css("color","black");
}
}).change(function() {
$.data(this, 'edited', this.value != "");
}).blur(function() {
if (!$.data(this, 'edited')) {
this.value = $.data(this, 'default');
$(this).css("color","gray");
}
});
});
最初只需将其设置为灰色,然后在聚焦时将其设置为黑色,如果再次设置默认文本,则返回灰色。
答案 1 :(得分:1)
HTML5中有placeholder =“something”属性。所以你会说, < input type =“text”placeholder =“something”/> 我认为这是最好的答案,因为Jquery不需要这样做。
答案 2 :(得分:0)
使用.css()
将color
样式添加到input
答案 3 :(得分:0)
我建议使用像labelOver这样的插件,而不是弄乱输入的文本和样式!
http://remysharp.com/2007/03/19/a-few-more-jquery-plugins-crop-labelover-and-pluck/#labelOver