javascript - 如何将输入蓝色激活边框更改为红色
问题描述
我有一个带有电子邮件字段的表单:
<input id="email-input" type="email" class="form-control" required>
此代码提供了前端验证(基于电子邮件正则表达式模式),但我也在寻找服务器检查以确保电子邮件是唯一的。
我已经建立了一个 ajax 请求来询问后端天气电子邮件是否存在。这部分效果很好。
有没有一种简单的方法可以将引导程序蓝色激活边框变为红色?
我试过的:
在后端验证错误时,添加引导边框:
<span class="border border-danger">
<input id="email-input" type="email" class="form-control" required>
</span>
结果很丑陋。
解决方案
function validateEmail(email) {
email = email.toString().toLowerCase();
const re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
document.getElementById('email').oninput = function() {
if (this.value.length == 0) {
this.classList.remove("email");
this.classList.remove("err");
return;
}
let status = validateEmail(this.value);
if (status) {
this.classList.add("email");
this.classList.remove("err");
} else {
this.classList.remove("email");
this.classList.add("err");
}
};
.err {
border-color: red;
}
.email {
border-color: green;
}
input:focus {
outline: none;
}
<input id='email' type='email' required/>
推荐阅读
- java - Java中按字母顺序排序列表
- python - 使用python3读取Excel文件
- docker - 我可以将桌面用作 docker 服务器并通过 mac 连接到托管地址吗?
- java - 如何在使用 Postman 调用我的 Web 服务时调试“无法处理 JSON”错误?
- c# - 未触及外键值时,UPDATE 语句与 FOREIGN KEY 约束冲突
- go - 访问 GO 结构中的字段
- c# - TextView 和 ListView 的奇怪行为
- python - 如何防止值以错误的顺序传递到列表中,并且看似随机的数字被附加到每个值?
- excel - 如何更新此 VBA 代码以包含谷歌地图 API 密钥
- vuejs2 - 在 element.io 中折叠垂直菜单