如何在字段中设置占位符文本的样式?

问题描述:

我有一个处理占位符文本的逻辑两个输入字段这个jQuery代码:如何在字段中设置占位符文本的样式?

$(document).ready(function() { 

$("form input.link").attr("value", "Media Link Here (optional)"); 
$("form input.email").attr("value", "*Email Address Here"); 

$("form input.link").live("focus", function() { 
    if ($(this).val() == "Media Link Here (optional)"){ 
    $(this).val(""); 
    } 
}); 

$("form input.email").live("focus", function() { 
    if ($(this).val() == "*Email Address Here"){ 
    $(this).val(""); 
    } 
}); 

$("form input.link").live("focusout", function() { 
    if ($(this).val() == ""){ 
    $(this).attr("value", "Media Link Here (optional)"); 
    } 
}); 

$("form input.email").live("focusout", function() { 
    if ($(this).val() == ""){ 
    $(this).attr("value", "*Email Address Here"); 
    } 
}); 

}); 

我想样式占位符文本,以便它有不同的造型比文本的用户类型到现场。我怎样才能做到这一点?

给文本框一个特殊的类,它会在focus()上消失,如果没有内容,则会在blur()上添加。

.placeholder { 
    color: gray; 
    font-style: italic; 
} 

$('.box').focus(function() { 
    if (this has default text) { 
    $(this).val(''); 
    $(this).removeClass('placeholder'); 
    } 
}); 

并添加类,当用户blur S和文字是默认的。

你试过......

$("form input.email").live("focus", function() { 
if ($(this).val() == "*Email Address Here"){ 
$(this).css("cssvalueyouwant", "value you want to set"); //set to normal 
$(this).val(""); }}); 
$("form input.email").live("focusout", function() { 
    if ($(this).val() == ""){ 
    $(this).attr("value", "*Email Address Here"); 
    $(this).css("cssvalueyouwant", "value you want to set"); //set to special 
}}); 

编辑:误解了问题,以为您使用的占位符HTML属性。现在我看到你不是,并且应该在这里使用其他答案,但我会留下我的答案,以防万一你想使用占位符属性。

占位符的造型是不是还广泛实施,那么你将不得不使用供应商前缀属性:

::-webkit-input-placeholder { 
    color: red; 
} 

:-moz-placeholder { 
    color: red; 
} 

HERE是CSS选择一个漂亮的文章,占位符,它是通过在不同的浏览器。

干杯