javascript - 使用 .setCustomValidity() 显示验证消息时出错
问题描述
我对以下代码有疑问。
当我输入无效值时,它可以工作,但如果我不从输入中移除焦点并继续输入数字,则会重复无效消息
function cargar(){
let boton=document.getElementById("boton");
boton.addEventListener("click",comprobar);
}
function comprobar(elEvent){
let valor=document.getElementById("valor");
let patron=/^[0-9]{3}/;
if(patron.test(valor.value)){
valor.setCustomValidity("");
}else{
valor.setCustomValidity("Valor incorrecto");
}
}
addEventListener("DOMContentLoaded",cargar,false);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ej77</title>
</head>
<body>
<form action="">
<label for="valor">Valor:
<input type="text" name="valor" id="valor">
</label>
<br>
<input type="submit" value="Comprobar" id="boton">
</form>
</body>
</html>
例子:
解决方案
推荐阅读
- swift - SceneKit - 将图像添加为法线贴图
- kubernetes - Kubernetes 和外部 DNS
- sql - 如何在 SQL 开发人员中执行存储过程
- angularjs - 如何在 angularjs 模板文件中对数字进行四舍五入
- python - Lambda 发送 SNS 通知
- android-studio - Libgdx:发现多个文件具有操作系统独立路径“libgdx-freetype.dylib”
- python - 通过 python3.0 分组 Dataframe[groupby()]
- arrays - 过滤数组以包含 Supercollider 中的唯一值
- c# - 动态调用方法,仅给定具有方法名称的字符串 c# 资源文件
- javascript - JQuery preventDefault 正在刷新页面并将 JSON 显示为数组 - 如何将此数据恢复为相同的表单?