【问题标题】:div input tag value changing colordiv输入标签值改变颜色
【发布时间】:2012-06-20 09:44:24
【问题描述】:

我的 html 标记中的代码存在以下问题:

<div id="searchbar"><input name="searchbar" type="text" id="searchfield" value="some text" onfocus="
if(this.value==this.defaultValue) 
    this.value=''; 
    this.style.color='#11111'" 
onblur="
if(this.value=='') 
    this.value=this.defaultValue;
    this.style.color='#22222'
if(this.value==this.defaultValue) 
    this.style.color='#111111'" 

好的,主要目标是批准在我的搜索字段中使用“某些文本”给出标准值应该只为新条目更改颜色。

该消息“一些文本”将在点击它时消失。现在,新值的颜色应该从标准 #222222 更改为 #111111。其次,当离开这个领域时,必须有两种不同的看待方式。第一种可能性应该是,如果新值与带有“一些文本”的标准值不同,则颜色应保持在 #222222。第二种可能性是,如果新条目与标准值相同,或者甚至没有输入,则颜色应更改回默认值 #222222。所以上面的代码一直工作到最后一点。

如果有人可以就如何解决问题给我建议,我将不胜感激。非常感谢。

【问题讨论】:

  • 你需要使用jquery! onchange 和 ajax 进行调用,告诉您该值是新值还是其他值。
  • 一些更具体的信息会很棒。谢谢。

标签: css html input tags


【解决方案1】:

你可以使用:focus 伪类

焦点上的 css 像这样改变 css

CSS

input[type="text"]{
color:white;
    background:red;
    padding:5px;
}




input[type="text"]:focus{
color:black;
    background:yellow;
}

现场演示http://jsfiddle.net/VQ99D/

更多信息http://www.cssdrive.com/index.php/examples/exampleitem/focus_pseudo_class/

【讨论】:

  • 您好,感谢您的回答。这段代码和我的代码有同样的问题。看,问题是在键入一些文本时,颜色以白色开头,在键入内容时变为黑色。之后它切换回白色。这是我想避免的。这是两种不同颜色的问题。如果新值与标准值不同,它应该改变并保持黑色。如果它为空或与标准值相同,则应变回白色。你懂了?谢谢。
【解决方案2】:

只需使用 HTML5 placeholder

而不是您冗长的复杂代码

Jsfiddle Example

HTML

<div id="searchbar">
<input name="searchbar" type="text" id="searchfield" placeholder="Some Text" />
</div>

CSS

#searchbar input {
    color: green;
}
input::-webkit-input-placeholder {
    color: red;
}
input:-moz-placeholder {
    color: red;
}​

根据你的意愿改变颜色。

注意:Placeholder 在 IE 中不支持。

更新

如果您想使用占位符来支持所有浏览器,请使用此 placeholder--a jQuery plugin 并在其中添加 style.css 以实现您的结果。

【讨论】:

  • 您好,感谢您的回答。使用占位符不是一种选择,因为我有很多 ie 用户。即使我您的代码与之前提到的问题相同。这是问题所在,颜色始终保持为绿色。谢谢
  • 我没有得到你真正想要实现的目标。根据我的代码,如果没有输入(默认文本),文本颜色将为红色。但是当用户键入时,颜色会变为绿色。这就是你需要的吧??
  • 我使用的是 firefox,标准值显示为绿色。打字时它也将是绿色的。之后它甚至会变成绿色。只是绿色。
  • 您使用的是哪个版本的 Firefox?也可以在谷歌浏览器中查看实际结果。
  • 好的,现在尝试 safari。颜色是正确的方法,但即使在 safari 中,占位符也不起作用。所以应该有另一种方法来避免占位符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
相关资源
最近更新 更多