javascript - 使用 JavaScript 检测光标何时不再位于文本区域中
问题描述
我想要做的是一个 HTML 文件,它检测 textArea 是否写了一些东西。为了显示它,我更改了背景颜色,因此当 textArea 为空时使用灰色,而当它上面写有内容时使用白色。
为此,我开发了以下代码:
function prueba() {
if (document.getElementById("text_1_3").value != "") {
document.getElementById("text_1_3").style.background = "white";
} else {
document.getElementById("text_1_3").style.background = "rgb(174,170,170)";
}
}
Text Area: <textarea id="text_1_3" style="background-color:rgb(174,170,170)" onclick="prueba();"></textarea>
这段代码的主要问题是要更新背景颜色,我总是必须单击 textArea。我想要的是,当我在 textArea 中输入任何内容并单击页面的任何部分(即使没有参考,按钮......,让我们用“纯文本”说)时,背景颜色已更新。
解决方案
只需使用 CSS 更改颜色,无需 JavaScript。
textarea:focus {
background-color: #FFF;
}
textarea {
background-color: rgb(174,170,170)
}
<textarea></textarea>
如果你想用 JavaScript 来做,你应该使用焦点和模糊事件侦听器,而不是点击。
var ta = document.querySelector("textarea")
ta.addEventListener("focus", function () {
ta.style.backgroundColor = "#FFF"
})
ta.addEventListener("blur", function () {
ta.style.backgroundColor = "rgb(174,170,170)"
})
<textarea></textarea>
推荐阅读
- reactjs - 从子组件中获取所有选定的值
- android - 使用 Kotlin 识别 Android 软键盘中的击键
- javascript - 在循环内调用具有不同 api 参数值的相同 web api
- javascript - Xcode 10 更新后 React Native 无法正常工作
- postgresql - postgresql 中的交叉表函数导致无效的内存分配请求大小
- assembly - 编写一个 ARM 汇编语言程序来计算第 n 个斐波那契数
- prolog - 如何从问题中打印变量值?
- php - 试图将实际日期与天数相匹配
- html - 导航中的下拉菜单定位
- python - 条件语句中的 return 语句在 Python 中给出了意想不到的结果