我尝试了这段代码,但它无法正常工作..当我对焦文本框时显示错误
function ChangeBgColor(obj, evt)
{
if(evt.type=="focus")
style.background ="lightgrey";
else if(evt.type=="blur")
{
style.background="white";
}
}
答案 0 :(得分:4)
此任务不需要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; }
答案 1 :(得分:2)
obj.style.background = "#C8C8C8";
答案 2 :(得分:1)
什么是style
?您尚未在上面的代码中的任何位置定义它:
function ChangeBgColor(obj, evt)
{
if(evt.type=="focus")
style.background ="lightgrey"; //<--what is style?
else if(evt.type=="blur")
{
style.background="white";
}
}
我猜你想要像
这样的东西obj.style.background ="lightgrey";
在上面的代码中,简化了
function ChangeBgColor(obj, evt)
{
obj.style.background = (evt.type=="focus") ? "lightgrey" : "white";
}
最好的答案是使用纯CSS。
答案 3 :(得分:1)
是的,你应该尝试这个javascript代码来改变这个元素的背景颜色:
var obj = document.getElementById("yourId");
obj.onfocus = function() {
obj.style.backgroundColor = 'red';
}
var obj = document.getElementById("yourId");
obj.onfocus = function() {
obj.style.backgroundColor = 'red';
}
现在你可以改变你想要的任何颜色
答案 4 :(得分:0)
尝试使用jQuery。
$('#div').on('focus', function() {
$(this).css({background:'blue'});
});