我正在尝试验证要在输入中设置的数据。我想使用HTML验证。
例如,我想检查"aaaa"是否是数字输入的有效数据。我想使用willValidate
或validity
,但我无法设置无效值,控制台显示(Chrome):
指定的值"aaaa"不是有效数字。该值必须与以下正则表达式匹配:- ?(\d +|\d +.\d +|.\d+)([eE][-+]?\d+)?
我已尝试捕获错误**,但它不是异常**。我检索输入值,但它在错误后为空。
var value = "aaaa";
try {
document.getElementById("input").value = value; // Shows a warn
} catch(err) {
console.log(err.message); // Nothing catching
}
console.log( document.getElementById("input").value ); // It is empty
- 一个
我想检查输入类型中要设置的值是否有效。我想在输入中设置无效值,然后检查willValidate或validity,但浏览器显示警告,输入值为空。问题是我的前端通过JavaScript设置输入值,但用户传递值。当错误发生时,我需要向用户显示错误,而不是仅放置和输入为空。
我知道警告不是异常。我想知道在任何类型中设置无效输入值时显示错误。
4条答案
按热度按时间xggvc2p61#
ukqbszuj2#
wecizke33#
要检查JavaScript设置的值,您可以抛出一个Error,将
.message
设置为控制台中显示的警告,以捕获输入值是否与控制台中显示的相同正则表达式不匹配。要检查用户输入,可以使用
onkeydown
和onpaste
事件;使用<label>
元素在HTML中显示消息,如果输入值为空字符串,则使用onfocus
事件将标签的.innerHTML
设置为空字符串。注意,控制台中显示的消息也是在input元素的
computedName
属性中设置的;但在用户输入时不更新,并在捕获时设置为跟随alert()
的空字符串。下面是一个Plnkr的例子:https://plnkr.co/edit/mLgCQfBmvZHb5cNGZWtN?p=preview
ohtdti5x4#
因为那不是错误,只是警告,你可以在控制台检查。
您可以做的是检查
isNaN(value)
并抛出一个Error对象。以jsFiddle为例