2011-11-08 40 views

回答

5

您可以使用选择的输入元素,然后抢在前面的跨度。添加影响颜色的类。模糊删除课程。

http://jsfiddle.net/Vbnj2/1/

$("span.holder + input").focus(function() { 
    $(this).prev('span.holder').addClass('active'); 
}).blur(function() { 
    $(this).prev('span.holder').removeClass('active'); 
}); 

现代浏览器都增加了对placeholder属性的支持。您只需添加placeholder="My Text"作为输入属性,浏览器将根据需要自动插入/删除它。

+0

+1鉴于,不错的方式达到 – defau1t

+0

完美,谢谢! – tvalent2

1

我知道这是你走近它的方式不同,但如果你正在试图做的是去除焦点持有人的文字,你总是可以使用this here

它做什么是阅读来自输入title属性的文本,您可以在CSS中设置默认文本的颜色,然后在焦点/模糊时添加/删除文本,除非有值,否则用户值将保留在那里而不是默认文本。

HTML

<input type="text" name="firstname" class="defaultText" title="First Name" /> 

CSS

input { margin: 10px; padding: 5px; } 

.defaultTextActive { color: #000; } 

jQuery的

$(".defaultText").focus(function(srcc) { 

    if ($(this).val() == $(this)[0].title) { 
     $(this).removeClass("defaultTextActive"); 
     $(this).val(""); 
    } 

}); 

$(".defaultText").blur(function() { 

    if ($(this).val() == "") { 
     $(this).addClass("defaultTextActive"); 
     $(this).val($(this)[0].title); 
    } 

}); 

$(".defaultText").blur(); 
+0

+1,因为这将无占位符属性。 – defau1t

相关问题