如果存在验证错误,则触发事件?

Shi*_*mmy 7 asp.net-mvc jquery jquery-validate unobtrusive-validation

我需要为表单验证失败的任何情况添加句柄.

我已经读过这个,这解释了我必须添加一个处理程序,如下所示:

$('form').bind('invalid-form.validate', function () {
  console.log('form is invalid!');
});
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试提交表单时,此事件才会触发.

我需要处理一个事件,该事件在表单经过后验证时被触发(即元素失去焦点等).

我想要实现的是,我有一个大型(~50个字段),并且它在Bootstrap选项卡中分割.
我想,当有任何新的验证失败或成功时,在包含无效/有效元素的选项卡的选项卡标题中设置或清除错误类.PS我的问题不在于如何在选项卡中设置这些类.我只想知道要处理哪些事件,以便在整个表单中的每个验证状态更改时得到通知.

Spa*_*rky 5

我需要在表单验证失败的任何情况下添加处理程序.

$('input, textarea, select').on('focusout keyup', function() {
   if ($('form').valid()) {
       // do something
   }
});
Run Code Online (Sandbox Code Playgroud)

我想,当有任何验证错误时,在选项卡标题中设置包含无效元素的错误类.

嗯,这与你最初提出的问题有点不同. (忽略我答案的前半部分.)

使用highlightunhighlight选项以及jQuery DOM遍历来设置和取消设置您希望的DOM中的任何类. highlight在某些内容无效时unhighlight触发,在有效内容时触发.见这个答案作为一个例子.

使用.setDefaults()方法设置这些选项,因为您使用的是unobtrusive-validation插件,并且无法直接访问该.validate()方法.