javascript - jQuery 验证,不是普通插件

标签 javascript jquery html forms validation

我一直在查看jQuery Validation Plugin这似乎有点矫枉过正(我网站的脚本要求不断增加),而且也不完全是我想要的。

让我定义一些术语:an <input type="text">如果字段同时匹配 RegEx 1 和 RegEx 2,则其状态为 VALID;如果匹配 RegEx 1 但不匹配 RegEx 2,则字段状态为 PARTIAL;如果不匹配 RegEx 1,则字段状态为 INVALID。

例如,RegEx 1 可能是 /^[A-Z_]*$/ RegEx 2 可能是 /^[A-Z]+(_[A-Z]+)*$/ .

要求是:

  • 任何可能导致无效状态的按键都会被忽略,不会干扰焦点或插入符位置,也不会看到值发生变化
  • 否则每次按键后状态都会更新为 VALID 或 PARTIAL,并且
  • 只要输入状态发生变化,就会调用回调。

看起来非常简单。这基本上是 QStringValidator 模型。

我有 jQuery 核心,但我是新手。我怎样才能实现这个?谢谢。

附注如果最佳解决方案位于 jQuery 之外,则不需要 IE 支持。

最佳答案

if (this.value.match(this.getAttribute('data-regex1')) {
    if (this.value.match(this.getAttribute('data-regex2')) {
        do_whatever_for_full();
    } else {
        do_whatever_for_partial();
    }
} else {
    do_whatever_for_invalid();
}

将正则表达式作为自定义属性(data-regex1、data-regex2)放入元素中,然后在数据更改时检查数据(不确定要检查多少事件,但您可能必须使用 onkeydown 来检查,忽略 Enter 和 Tab ,或者您可以在焦点上创建一个计时器并每隔半秒左右检查一次)。

关于javascript - jQuery 验证,不是普通插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21001074/

相关文章:

jquery - 对齐分割图像的两半 - 响应式

html - 帮助制定布局此页面部分的最佳方法?

javascript - 使用 jqGrid 和 jQuery 时事件不会在函数内触发

javascript - 如何为 jquery 旋钮做 jquery Canvas 渐变?

javascript - jsPDF输出PDF下载

Jquery递归比较两个元素的html和属性

javascript - 如何按 '.' '!' '?' 进行 .slice() 文本而不丢失它们? (正则表达式)

html - 在特定列的 html 上制作边框

javascript - 如何从javascript访问sqlite3数据库表值?

javascript - 允许用户动态选择网页上显示的图像中的像素框