我有一个带有自定义 oninvalid 消息的文本输入:
<input id="foo" type="text" maxlength="16" required pattern="[a-zA-Z0-9]+"
oninvalid="this.setCustomValidity('Please enter letters and /
or numbers only.')" onBlur="chk()" autofocus>
在 onBlur 事件中,我想运行一些代码,但前提是输入的文本通过了指定的模式验证。像这样的东西:
function chk() {
if (document.getElementById("foo").isvalid?()) {
bar();
}
}
或者:
function chk() {
if ($("#foo").isvalid?()) {
bar();
}
}
更新
我找到了以下解决方案,但它确实重复了模式验证的代码:
function chk() {
var exp = /^[a-zA-Z0-9]+$/;
if (exp.test($("#foo").val())) {
bar();
}
}
最佳答案
您无需手动重新检查文本是否与正则表达式匹配。你可以只检查 ValidityState .
function chk() {
if ($("#foo").validity.valid) {
bar();
}
}
关于javascript - 如何检查 Javascript 文本输入的模式验证结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39193175/