gpt4 book ai didi

jQuery 验证插件 - $.blur 上的验证似乎在升级到 1.9 时发生了变化

转载 作者:行者123 更新时间:2023-12-01 02:06:21 24 4
gpt4 key购买 nike

在验证 1.8 中,我在所有表单的输入元素上使用了 $.blur 函数,以便在用户退出时触发该字段的验证:

$('#myform :input').blur(function() {
$("#myform").validate().element( this );
});

效果很好。不过,我刚刚更新到 1.9,现在我的字段在 keyup 上验证,而不是模糊。

我没有对我的设置进行任何更改,只是切换到 1.9。

我看到有很多更改,但我没有看到其他文档。

如有任何帮助,我们将不胜感激。

澄清

之前,我的元素最初会在模糊时进行验证,但如果元素处于错误状态,则如果用户返回进行更改,该元素将主动在键盘上进行验证等。这是我想要的行为。在初始输入时,直到模糊才进行主动验证,但是一旦字段处于错误状态,该字段应该主动验证更改、按键等。

现在,该元素在初始输入时通过 keyup 进行验证

最佳答案

默认情况下,对于文本输入,jQuery Validate 在“blur”(onfocusout:)、“keyup”(onkeyup:) 和“提交”(onsubmit:) 事件。

要使其仅验证“模糊”和“提交”字段,只需将 onkeyup: 选项设置为 false...

$(document).ready(function() {

$('#myform').validate({
onkeyup: false, // to use onkeyup, remove this line
// other rules and options
});

});

所有版本的工作原理都相同...

工作演示(v1.10):http://jsfiddle.net/M2MLL/

工作演示(v1.9):http://jsfiddle.net/KSgLb/

工作演示(v1.8):http://jsfiddle.net/k87Lp/

onfocusout 的默认行为是,只有在字段中留下某些内容之后(或之后),才会开始对字段进行验证。 em> 初始提交事件),否则只需将字段留空并单击新字段不会执行任何操作。

<小时/>

如果您希望每次都对“blur”进行验证,无论如何,只需修改 onfocusout: 的回调函数,如下所示...

$(document).ready(function() {

$('#myform').validate({
onfocusout: function(element, event) {
this.element(element);
},
onkeyup: false,
// other rules and options
});

});

工作演示(v1.9):http://jsfiddle.net/eRNTu/

版本 1.10 也可以运行:http://jsfiddle.net/Mev8v/

<小时/>

顺便说一句:虽然我不会用 .blur() 这样做,但你的原始代码 was working fine with v1.9 and v1.10但是,我相信利用插件的 onfocusout: 选项的内部功能是实现目标的更可靠的方法。

<小时/>

编辑2:

回应OP的最后澄清:

"That on initial entry, there is no active validation until on blur, but once a field is in an error state the field should actively validate on change, keyup, etc."

这是一个新的工作演示,它修改了 onkeyup 的默认回调函数:

    onkeyup: function (element, event) {
if (event.which === 9 && this.elementValue(element) === '') {
return;
} else if (element.name in this.submitted ) {
this.element(element);
}
},

最初或没有显示错误时,该字段将忽略任何onkeyup验证。仅当存在事件错误并且用户返回到该字段时,onkeyup 验证才会开始运行。

工作演示:http://jsfiddle.net/6s4rj/

关于jQuery 验证插件 - $.blur 上的验证似乎在升级到 1.9 时发生了变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14537518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com