Javascript jquery验证插件:如何仅对已验证的更改触发与字段相关的操作?

Javascript jquery验证插件:如何仅对已验证的更改触发与字段相关的操作?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在使用jquery验证插件来验证一个复杂的表单。在某些特定的输入字段上,我使用额外的ajax调用来提供额外的用户反馈。例如,当在textarea元素中粘贴PEM格式的证书时,服务器端解析允许用户立即访问只读输入元素中显示的证书主题、颁发者和过期日期 最初,我将ajax调用绑定到更改事件,方式如下: $('textarea.x509').on('change', function () { // parse certificate server-side with ajax query }

我正在使用jquery验证插件来验证一个复杂的表单。在某些特定的输入字段上,我使用额外的ajax调用来提供额外的用户反馈。例如,当在textarea元素中粘贴PEM格式的证书时,服务器端解析允许用户立即访问只读输入元素中显示的证书主题、颁发者和过期日期

最初,我将ajax调用绑定到更改事件,方式如下:

$('textarea.x509').on('change', function () {
  // parse certificate server-side with ajax query
});
这很好,因为当值没有改变时,它避免了无用的ajax查询。但是,它也会触发无效值的无用查询。由于我也在使用基于模式的客户端验证,我试图减少那些无用的查询

我曾经将ajax调用绑定到elementValidationSuccess事件:

现在,它仅对有效值激发。但是,它也会在每次焦点从textarea元素丢失时触发,因为jquery验证插件会触发模糊和keyup事件的验证(对于此类字段),即使实际值没有改变

有没有一种方法可以混合这两种策略的优点,并且只针对经过验证的更改触发那些ajax查询?我曾考虑为变更事件使用一个额外的事件处理程序,为字段处理一个简单的is_dirty标志,或者在我当前的处理程序中保留以前的值的跟踪,但这两种解决方案对于看起来相对简单的需求来说似乎都很麻烦

问候

$('textarea.x509').on('elementValidationSuccess', function () {
  // parse certificate server-side with ajax query
});