2014-09-19 60 views
1

我正在开发一个使用ASP.NET MVC 4的网站,并且遇到以下问题。我正试图在服务器正在处理时显示加载映像。当填写表格时我没有犯任何错误,它实际上工作正常。但是,例如,当我错过了必填字段时,加载图像弹出,并且它不会消失,并且字段的验证已完成。 我试过用jQuery来做这样的事情由于必填字段,加载图像无法在MVC上工作

$(function() { 
    $("#button").click(function() { 
    alert(form.valid()); 
    if (form.valid()) { 
     $("#divLoading").show(); 
     $.post({ 
      type: 'POST', 
      url: url, 
      data: data, 
      success: function (data) { 
       $("#divLoading").hide(); 
      } 
     }); 
    } else { 
     alert("Not valid."); 
    } 
    //} 
}); 

});

因此,当我询问表单是否有效时,它会返回true,尽管留空了必填字段。

我的模型如下:

public class MotivoDTO 
    { 
     public MotivoDTO() 
     { 
     } 
     [Required(ErrorMessage = "You must enter a Motive.")] 
     [DataType(DataType.Text)] 
     [Display(Name = "Descripcion")] 
     public string Descripcion { get; set; } 

    } 

谢谢! (...和我的英语很抱歉)

+0

哪里div加载html和css的呢? – Yehia 2014-09-19 20:20:23

回答

0

更新您的阿贾克斯()调用,使AJAX()函数中使用提供给您不同的事件。

$(function() { 
    $("#button").click(function() { 
    alert(form.valid()); 
    if (form.valid()) { 

     $.post({ 
      type: 'POST', 
      url: url, 
      data: data, 
      //do this before you start the POST method 
      beforeSend: function(){ 
       $("#divLoading").show(); 
      }, 
      //do this regardless if it was successful or not 
      complete: function (data) { 
       $("#divLoading").hide(); 
      } 
     }); 
    } else { 
     alert("Not valid."); 
    } 
} 
+0

就是这样!我已经删除了jQuery验证,只是做了你所说的,它工作正常!谢谢! – 2014-09-24 20:03:58

0

首先尝试验证表单:

form.validate(); 
if (form.valid()) { 

我supose这种形式是要提交表单的jQuery对象。

0

在应用程序中启用不显眼的验证。现在发生的事情是你在服务器上验证是否正常。但是在这样做的时候,你正在启用进度控制,但如果出现验证错误,你永远不会关闭它。不显眼的验证将允许您的验证发生在客户端。如果您希望将divLoading放置在if语句之外,并在else语句中添加隐藏命令,则可以。

Unobstrusive Validation

0

它也可能是一个好主意,以确保负载DIV无论是你的隐藏方法后的结果。 jquery.post

例如:

$.post({ 
     type: 'POST', 
     url: url, 
     data: data, 
     success: function (data) { 
      $("#divLoading").hide(); 
     } 
    }).always(function() { $("#divLoading").hide(); }); 
+0

嗨迈克,欢迎在Stackoverflow。我有空自由地编辑你的文章,如果你在某些代码之前添加4个空格,它会自动为你设置格式。它看起来更好。感谢您的回答。干杯! – 2014-09-19 20:50:37