javascript - onfocus时如何更改文本框的背景颜色?

标签 javascript html css dom-events

我试过这段代码,但它不起作用;当我聚焦文本框时,它显示错误:

function ChangeBgColor(obj, evt) 
 { 
        if(evt.type=="focus") 
            style.background ="lightgrey";
        else if(evt.type=="blur") 
        {
           style.background="white";
        }          
 }

最佳答案

此任务不需要 JavaScript,只需使用 css(自 IE8 起支持 :focus)

https://developer.mozilla.org/en-US/docs/CSS/:focus

input { background: lightgray; }
input:focus { background: white; }

仅当在 < IE8 上也绝对需要此效果时然后可以使用 JS(正确包装在条件注释中),但即使在这种情况下,也建议将样式与逻辑分开:例如

function ChangeBgColor(obj, evt) { 
    obj.className = (evt.type === "focus") ? "focus" : "";
}

并使用这种风格

 input { background: lightgray; }

 input:focus, 
 input.focus { background: white; }

关于javascript - onfocus时如何更改文本框的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15975078/

相关文章:

javascript - 使用 AWS S3 Javascript SDK 加载新网页

javascript - 从javascript多次调用ajax

javascript - 如何在html页面中显示运行计数器

javascript - 将变量从 JS 传递到 VB.net

javascript - 内容更改时动画高度 css3

jquery - 使用 jQuery 的高度切换动画

javascript - 当用户继续滚动时,在不中断动画的情况下在滚动页面上滑动 div 和关闭页面

jquery - 如何做侧滑子菜单?

css - 导航栏切换动画不起作用

css - 从 Google Inspect Element 粘贴 CSS 时更改默认缩进