我一直在查看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/