javascript - 如何检查 Javascript 文本输入的模式验证结果?

标签 javascript jquery html

我有一个带有自定义 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/

相关文章:

javascript - History.back() 和 html 链接问题

javascript - jQuery 参数和参数之间的区别

javascript - ExtJs 更改创建输入的 maskRe

javascript - 使用 jQuery 动态设置元素的高度并在窗口调整大小时更改高度

javascript - document.GetElementById 不适用于任何类型的浏览器

javascript - 选中页面中的所有复选框

jquery - 如何在 select2 中添加自定义标签

html - 防止使用 srcset 进行放大?

javascript - HTML 中在不同屏幕上显示和隐藏内容的方法

jquery - jQuery 动画函数