javascript - 在javascript中更改条件错误消息的颜色时,它在页面加载时变得可见
问题描述
我有一个从 Azure 返回的 HTML 页面,我想在 azure 生成的 HTML 页面内的 div 元素上将错误消息 (UsernameIsMissing) 的颜色更改为红色。
仅当缺少用户名并单击“保存”按钮时才应显示错误消息。我在(本地)HTML 页面中创建了一个 API div,这个 API div 元素正在被从 Azure 返回的 HTML 页面替换。
我的问题是,当我将错误消息上的文本颜色更改为红色时,它将在页面加载时显示错误消息,而不是在单击事件之后。为了使错误消息仅在单击事件之后可见,我需要做什么?
<div id="api"></div>
<script>
window.onload = changeColor();
function changeColor() {
var errorMsg = document.getElementById('UsernameIsMissing');
erroMsg.style = "color:red;";
}
</script>
更新:
我最终想通了。我添加了第二个函数,它为按钮上的点击事件添加了一个事件监听器。调用 changeColor 函数。
<div id="api"></div>
<script>
window.onload = SaveBtnClickEvent();
function SaveBtnClickEvent() {
var saveBtn = document.getElementById('SaveButton');
saveBtn.addEventListener("click",function(){changeColor();});
function changeColor() {
var errorMsg = document.getElementById('UsernameIsMissing');
erroMsg.style = "color:red;";
}
</script>
我之前尝试过这种更改,但由于第二个参数上的一个小错误而无法正常工作:
saveBtn.addEventListener("click", changeColor(); );
相反,第二个参数应该如下所示:
saveBtn.addEventListener("click",function(){changeColor();});
解决方案
您可以创建一个布尔局部变量 clicked=false。然后在用户单击按钮后,将变量更新为 true。在 changeColor 函数中检查变量的状态
let clicked = false;
//When the user clicks the button also make clicked = true;
<div id="api"></div>
<script>
window.onload = changeColor();
function changeColor() {
if (clicked){
var errorMsg = document.getElementById('UsernameIsMissing');
erroMsg.style = "color:red;";
}
}
</script>
推荐阅读
- bash - 如何在 bash 别名定义中使用控制字符
- powershell - 如何从通过 powershell 从 Teams 导出的 csv 文件中获取 samAccountName
- html - 如何在 React js 中以表格格式显示 API 响应?
- ios - UINavigationController 的 RootViewController 没有被释放,而 UINavigationController 由另一个 UINavigationController 呈现
- javascript - Google Apps 脚本文件上传、保存到 Google 表格、无文件提交表单
- javascript - 使用jquery 动态颜色选择器?
- android - 伪本地化在语言中找不到英语 (XA)
- r - R中有没有办法计算两个不同事件之间的事件发生次数?
- reactjs - 如何将我的反应代码移植到移动应用程序中
- pentaho - 读取数据到表输入 pentaho