【问题标题】:How do I change the border color of an input text when user types in用户输入时如何更改输入文本的边框颜色
【发布时间】:2013-10-28 16:16:14
【问题描述】:

边框颜色将取决于当前键入的值。 当 onkeypress 事件发生时,我尝试使用 javascript 更改输入文本的类名,

element.className= 'recordInputEdited';

但是,它无法摆脱 :focus 样式,新类在文本框失去焦点之前是可见的。有什么想法吗?

【问题讨论】:

  • 请发一个完整的代码示例。
  • 为您的问题发表一个小提琴

标签: javascript html css


【解决方案1】:

这应该可以:http://jsfiddle.net/GQSsw/

HTML:

<input id="element" />

Javascript:

document.getElementById('element').onkeydown = function() {
    this.className= 'edited';
}

CSS:

input {
    border: 1px solid red;
}

input:focus {
    border: 1px solid green;
}

input.edited {
    border: 1px solid yellow;
}

【讨论】:

  • 这似乎可行,但不适用于我的环境,我需要更深入地挖掘,看起来另一个 css 块正在避免在 onkeydown 方法中立即更改类。
  • 你也可以试试input.edited{border: 1px solid yellow !important}
【解决方案2】:

使用 css 你可以:

input:focus {
    border:1px solid red;
} 

【讨论】:

  • 我不是在问如何设置 :focus 样式。
  • 嗯,你的一些代码会很有用。为了在 Javascript 中进行简单的 Dom 操作和事件处理,您可以使用 jQuery。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-08
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多