Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过jquery处理已验证表单的表单发布事件(不引人注目的验证)_Javascript_Jquery_Jquery Validate_Unobtrusive Validation - Fatal编程技术网

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

Javascript 通过jquery处理已验证表单的表单发布事件(不引人注目的验证),javascript,jquery,jquery-validate,unobtrusive-validation,Javascript,Jquery,Jquery Validate,Unobtrusive Validation,我必须处理表单的提交事件,并可能阻止发布。例: $('#myForm').submit(function (){ if (someCondition) return true //post; else return false //dont post }); 这部分工作正常,但现在我有了jquery.validate插件和jquery.validate.unobtrusive 我希望这部分代码在验证通过后运行(并且仅当表单有效时) 有什么想法吗 一些澄清 验证插件是来自

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

$('#myForm').submit(function (){
  if (someCondition)
    return true //post;
  else
    return false //dont post
});
这部分工作正常,但现在我有了jquery.validate插件和jquery.validate.unobtrusive

我希望这部分代码在验证通过后运行(并且仅当表单有效时)

有什么想法吗

一些澄清 验证插件是来自的jquery.validate插件 我在上面使用Microsofts(它与MVC3一起提供)插件。
我认为这项工作必须在jquery.validate.unobtrusive.js中的
validationInfo
函数中完成…

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

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

试试这个:

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

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

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

      });
   }

如果我弄错了,不要开枪打我,但是你不需要在验证之前提交你的表格吗?编辑:尝试将您的函数相互堆叠?当用户单击“提交”时,验证插件将完成其工作,如果表单无效,则可能会阻止提交。基本上,a希望在表单有效时,在发布之前做一些业务。我认为这是一个好的开始,但是有jquery.validate.unobtrusive正在表单上调用
.validate
。我正在检查是否可以将提交处理程序交给不显眼的插件。啊,抱歉,我误读了你的OP,以为你在使用Basistance验证插件。是的,这是Basistance验证插件,上面有jquery.validate.unobstreat。这个不引人注目的插件是微软的MVC附带的。我会澄清我的问题。