使用加载微调器进行jQuery验证

使用加载微调器进行jQuery验证,jquery,asp.net-mvc-3,validation,Jquery,Asp.net Mvc 3,Validation,因此,我知道有很多关于Jquery验证库和页面加载微调器的问题被分别询问,我可以让这两个项独立工作,但是我没有成功地将这两个项一起使用 简而言之,我有一个使用jQuery验证库的电子邮件表单。当按下“发送”时,我希望在控制器执行其业务时(但仅当字段有效时),加载的GIF(已在第页上,但显示:无)变为可见。据我所知,在根据验证页面后,我需要使用.valid(),但是它需要先运行.validate()。如果我以以下方式处理问题,则表单会在GIF播放之前提交: <script>$("#em

因此,我知道有很多关于Jquery验证库和页面加载微调器的问题被分别询问,我可以让这两个项独立工作,但是我没有成功地将这两个项一起使用

简而言之,我有一个使用jQuery验证库的电子邮件表单。当按下“发送”时,我希望在控制器执行其业务时(但仅当字段有效时),加载的GIF(已在第页上,但
显示:无)变为可见。据我所知,在根据验证页面后,我需要使用
.valid()
,但是它需要先运行
.validate()
。如果我以以下方式处理问题,则表单会在GIF播放之前提交:

<script>$("#emailForm").validate();</script>
<script>
    $("#Send").click(function () {
        if($("#emailForm").valid()) { $(".loaderWheel").show(); }
    });
</script>
$(“#emailForm”).validate();
$(“#发送”)。单击(函数(){
if($(“#emailForm”).valid(){$(“.loaderWheel”).show();}
});
如果我采用这种方式,GIF将变得可见,即使表单无效,也不会再次消失:

<script>$("#emailForm").validate();</script>
<script>
    $("#Send").click(function () {
        $(".loaderWheel").show();
        if(!$("#emailForm").valid()) { $(".loaderWheel").hide(); }
    });
</script>
$(“#emailForm”).validate();
$(“#发送”)。单击(函数(){
$(“.loaderWheel”).show();
if(!$(“#emailForm”).valid(){$(“.loaderWheel”).hide()}
});

如何使GIF仅在表单有效且回发页面正在加载时可见?

尝试覆盖验证程序中的submitHandler方法。它仅在表单有效时执行。所以,这个,或者类似的东西应该能起作用。检查文档

$().ready(function() {
  $("#profile").validate({
    submitHandler: function(form) {
      $("#spinner").show();
      form.submit();
    },
    rules: {
      f_firstName: {
        required  : true,
        minlength : 2
      },
      f_lastName: {
        required  : true,
        minlength : 2
      ...

#发送
并提交按钮还是通过ajax提交?#发送是提交按钮。提交表单时,表单离开页面,因此微调器永远不会显示。我假设您的控制器正在执行
return View()
,但这会返回一个新页面,而不是您当前所在的页面。好的,那么我应该如何更改我的结构?你是对的,在发送时,它会转到一个HttpPost ActionResult方法,该方法返回相同的视图,并显示一条状态(确认、失败)消息。我不确定你为什么要这样做,但如果你这样做,那么你将停留在同一页面上