【问题标题】:CSS or JS - change background color of input when input is focused out? [closed]CSS或JS - 当输入聚焦时改变输入的背景颜色? [关闭]
【发布时间】:2013-11-26 19:22:01
【问题描述】:

当输入文本失去焦点时,有没有办法在输入文本上设置background-color?

我正在尝试使用 js,但我想知道是否可以在纯 css 中使用。

这似乎不起作用

input{
 background-color:#fff !important;
}   
input:focus{
background-color:#333 !important;
}
//input:unfocused and has value{ ??? :) }

 $('input,textarea').on('focusout',function(e){
      if($(this).val().length){
       $(this).css('background-color','#fff');
      }
      });

谢谢

【问题讨论】:

  • jQuery .css() 方法不支持 CSS !important 语句,删除它或使用类
  • @A.Wolff 谢谢你,但仍然无法正常工作,因为我已经默认设置了 background-color: fff important;在 input 上,如果 input 有值并且是 focusout 则尝试更改背景
  • :focus 伪类将允许您将其作为否定过程来执行。聚焦时重新着色,不聚焦时恢复正常。
  • @DevlshOne 谢谢,但我需要 3 个语句背景:输入、输入:焦点、输入:焦点输出
  • @sbaaaang 你可以试试input:not(:focus)

标签: javascript jquery css focus html-input


【解决方案1】:

CSS3 方法例如是:

input[type=text]:focus{
    color:red;
}

见THIS FIDDLE。它有点落后,你会设置活动的样式,而不是模糊的选择器。

要模拟模糊,可以使用:not(:focus)、see here

【讨论】:

  • 这是我需要的焦点:P
  • @sbaaaang,重点是相反的。为焦点输出设置普通(非:focus)选择器的样式。它的作用相同,但在 CSS 中颠倒了
  • 我需要 3 个语句背景:输入、输入:焦点、输入:焦点输出
  • CSS中没有focusout选择器,这需要在JS中完成
【解决方案2】:

textarea 和 input 是不同的选择器:

使用 jquery 执行此操作:

<script type="text/javascript">
$(document).ready(function(){
      $('textarea').on('focusout',function(){ // When losing focus
            $(this).css('background','#FFF');
      });
      $('textarea').on('focus',function(){ // When focus
            $(this).css('background','#333');
      });
});
</script>

或 CSS:

textarea { background-color:#fff !important; }  
textarea:focus { background-color:#333 !important; }

【讨论】:

  • 嘿抱歉我得到了修复它是删除一些 css 现在它可以工作了我很抱歉,谢谢你的时间,我投票关闭了这个
猜你喜欢
  • 1970-01-01
  • 2021-04-10
  • 2019-08-03
  • 2021-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 2021-02-11
相关资源
最近更新 更多