通过已验证表单的jquery处理表单发布事件(不引人注目的验证)

Handle form post event via jquery for a validated form (unobtrusive validation)

本文关键字:表单 验证 事件 引人注目 处理 jquery 布事件      更新时间:2023-09-26

我必须处理表单的提交事件,并可能阻止发布。例如:

$('#myForm').submit(function (){
  if (someCondition)
    return true //post;
  else
    return false //dont post
});

这部分是有效的,但现在我有了带有jquery.validate.unobtrust.的jquery.vvalidate插件

我希望这部分代码在验证通过后运行(并且只有在表单有效的情况下(。

有什么想法吗?

一些澄清

验证插件是来自basistance的jquery.validate插件我在上面使用了微软的不引人注目的插件(维奇与MVC3一起提供(。我认为这项工作必须在jquery.validate.uno唐突.js中的validationInfo函数中完成。。。

试试这个:

$("#myform").validate({
    submitHandler: function(form) {
        if (someCondition)
            return true; //post
        else
            return false; //dont post
        }
    }
});

我不确定我是否正确理解您的问题,但请查看jQueryValidate插件中的submitHandler选项:

用于在表单有效时处理实际提交的回调。获取表单作为唯一参数。替换默认提交。

http://docs.jquery.com/Plugins/Validation/validate

感谢@Rory,我实现了我想要的。由于jquery.validator.uno唐突处理对jquery.vvalidate的调用,并且不提供拦截任何内容的方法(是的,这是一个Microsoft插件…(,因此解决方案是使用Rory建议的submitHandler选项,但通过setDefault方法:

   if (typeof ($.validator) != 'undefined') {
      $.validator.setDefaults({
         submitHandler: function (form) {
            if (someCondition)
               return true; //post
            else
               return false; //dont post
         }
      });
   }