更改输入焦点上占位符跨度的字体颜色

时间:2011-11-08 04:44:14

标签: jquery html

我有一个输入字段,其中包含span占位符。我想要做的是在单击输入字段时更改占位符的颜色。这是一个jsFiddle,有一个我的领域的例子。

http://jsfiddle.net/Vbnj2/

最好的方法是什么?

2 个答案:

答案 0 :(得分: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"作为输入属性,浏览器将根据需要自动插入/删除它。

答案 1 :(得分: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();
相关问题