我需要为表单验证失败的任何情况添加句柄。
我已阅读this,这解释了我必须按如下方式添加处理程序:
$('form').bind('invalid-form.validate', function () {
console.log('form is invalid!');
});
但是当我尝试提交表单时,此事件才会触发。
我需要处理一个事件,该事件在表格经过后期验证时被解雇(即元素失去焦点等)。
我想要实现的是,我有一个大型表格(约50个字段),它在Bootstrap tabs中分割。
我想,当有任何新的验证失败或成功时,在包含无效/有效元素的选项卡的选项卡标题中设置或清除错误类。附:我的问题不在于如何在选项卡中设置这些类。我只想知道要处理哪些事件,以便在整个表单中的每个验证状态更改时得到通知。
答案 0 :(得分:5)
我需要在表单验证失败的任何情况下添加处理程序。
$('input, textarea, select').on('focusout keyup', function() {
if ($('form').valid()) {
// do something
}
});
我想,当有任何验证错误时,请在包含无效元素的标签标题中设置错误类。
嗯,这与你最初提出的问题有点不同。 (忽略我答案的前半部分。)
使用highlight
和unhighlight
选项以及jQuery DOM遍历来设置和取消设置您希望的DOM中的任何类。当某些内容无效时highlight
会触发,unhighlight
会在某些内容生效时触发。请参阅this answer作为示例。
使用the .setDefaults()
method设置这些选项,因为您使用的是unobtrusive-validation
插件,并且无法直接访问.validate()
方法。