2 回答
TA贡献1898条经验 获得超8个赞
有一个非常优雅的解决方案 - 不使用 javascript,而是使用 css 伪类焦点:
:focus CSS 伪类表示已接收焦点的元素(例如表单输入)。它通常在用户单击或点击某个元素或使用键盘的 Tab 键选择它时触发。
在你的情况下:
.lime-focused-input:focus {
background:lime;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=">
<title></title>
</head>
<body>
<form action="">
<label for="">Name</label> <input type="text" id="fname" class="lime-focused-input">
<br><br>
<label for="">class</label> <input type="text" class="lime-focused-input">
<br><br>
<label for="">Country</label>
<select name="" id="">
<option value="">Pakistan</option>
<option value="">India</option>
<option value="">America</option>
<option value="">China</option>
</select>
</form>
</body>
</html>
TA贡献1825条经验 获得超4个赞
我想如果您尝试使用background透明更改 try 并且不要使用blur,它是一个冲突的关键字(原因见下文):
function abc(element) {
element.style.background = "lime";
}
function aaa(element) {
element.style.backgroundColor = "transparent";
}
<form action="">
<label for="">Name</label> <input type="text" id="fname" onfocus="abc(this)" onblur="aaa(this)">
<br><br>
<label for="">class</label> <input type="text" onfocus="abc(this)" onblur="aaa(this)">
<br><br>
<label for="">Country</label>
<select name="" id="">
<option value="">Pakistan</option>
<option value="">India</option>
<option value="">America</option>
<option value="">China</option>
</select>
</form>
默认情况下,作用域是window作用域,window.blur()或者blur()是对象的事件处理程序window,并且不能被覆盖。
因此您无法覆盖任何这些window相关属性。
添加回答
举报