Jquery 如果存在验证错误,是否触发事件?
我需要为表单验证失败的任何情况添加句柄 我已经阅读了,这说明我必须添加一个处理程序,如下所示:Jquery 如果存在验证错误,是否触发事件?,jquery,asp.net-mvc,jquery-validate,unobtrusive-validation,Jquery,Asp.net Mvc,Jquery Validate,Unobtrusive Validation,我需要为表单验证失败的任何情况添加句柄 我已经阅读了,这说明我必须添加一个处理程序,如下所示: $('form').bind('invalid-form.validate', function () { console.log('form is invalid!'); }); 但此事件仅在我尝试提交表单时触发 我需要处理在表单经过后验证(即元素失去焦点等)时随时触发的事件 我想要实现的是,我有一个很大的表单(~50个字段),并且它被分割成多个部分。 我希望,当出现任何新的验证失败或成功时,
$('form').bind('invalid-form.validate', function () {
console.log('form is invalid!');
});
但此事件仅在我尝试提交表单时触发
我需要处理在表单经过后验证(即元素失去焦点等)时随时触发的事件
我想要实现的是,我有一个很大的表单(~50个字段),并且它被分割成多个部分。我希望,当出现任何新的验证失败或成功时,在包含无效/有效元素的选项卡的选项卡标题中设置或清除错误类。另外,我的问题不是如何在选项卡中设置这些类。我只想知道要处理哪些事件,以便在整个表单中的每个验证状态更改时收到通知 我需要在表单验证失败的情况下添加一个处理程序
我希望,当出现任何验证错误时,在包含无效元素的选项卡标题中设置一个错误类 嗯,这和你最初问的有点不同。(忽略我回答的前半部分。) 使用
高亮显示
和取消高亮显示
选项以及jQuery DOM遍历来设置和取消设置DOM中您想要的任何类<代码>高亮显示在某些内容无效时激发,而取消高亮显示
在其变为有效时激发。请看一个例子
用于设置这些选项,因为您使用的是
无干扰验证
插件,无法直接访问.validate()
方法。jQuery或验证插件没有提供此类事件。你必须在每个输入元素上附加一个focusout
、blur
、keyup
,然后使用.valid()
方法来测试表单。@Sparky是否存在由unobtrusive validation插件提供的onvalidated
之类的事件?我对unobtrusive
插件不太熟悉。然而,在我见过的数千个jQuery验证问题中,我从未见过任何自定义事件的描述?为什么你不能直接使用?@Sparky,不引人注目的验证,你根本不调用validate
。这一切都是为你准备的。无论如何,我已经根据我的需求更新了我的问题。我认为高亮显示和取消高亮显示确实是我想要的。无论如何,我可以从我正在设置的突出显示功能调用原始的突出显示功能吗如果你是原始函数,我必须复制并粘贴到我的重写脚本中,还是它存在于任何地方?@Shimmy,你在那里输入的任何内容都会超过默认值。换句话说,如果你想保持默认行为,你需要将默认函数复制到你的函数中。然后在它的基础上获得您的新行为。我最终使用了无效表单.validate
事件,这是从引擎盖下jqueryinvalidHandler
发出的一个不引人注目的验证事件。不幸的是,我错过了一些功能,使它无法工作。我不该问这个问题,浪费你的时间。无论如何,你的回答教会了我很多关于jquery验证的工作原理。@Shimmy,禁用的
字段总是会被忽略,不管发生什么。。。它的硬编码是完全绕过忽略
选项。因此ignore:':disabled'
实际上与ignore:[]
相同。见:
$('input, textarea, select').on('focusout keyup', function() {
if ($('form').valid()) {
// do something
}
});