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

时间:2015-04-25 23:57:08

标签: jquery asp.net-mvc jquery-validate unobtrusive-validation

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

我已阅读this,这解释了我必须按如下方式添加处理程序:

$('form').bind('invalid-form.validate', function () {
  console.log('form is invalid!');
});

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

我需要处理一个事件,该事件在表格经过后期验证时被解雇(即元素失去焦点等)。

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

1 个答案:

答案 0 :(得分:5)

  

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

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

我想,当有任何验证错误时,请在包含无效元素的标签标题中设置错误类。

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

使用highlightunhighlight选项以及jQuery DOM遍历来设置和取消设置您希望的DOM中的任何类。当某些内容无效时highlight会触发,unhighlight会在某些内容生效时触发。请参阅this answer作为示例。

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

相关问题