2012-03-21 93 views
0

我有一个使用数据注释验证的MVC应用程序。我也有按钮提交一些手动jQuery验证。我希望提交按钮隐藏,当我的jQuery验证已通过并由框架实施的不显眼的验证通过。MVC 3 dataannotations验证使用自定义jQuery验证

这是我的代码:即使在形式发布

$('#btnSubmit').click(function() { 
    if (!$('#Terms').is(':checked')) { 
     $('.termsLabel').animate({ color: "#c71040" }, 'slow'); 
     $('.termsLabel a').animate({ color: "#c71040" }, 'slow'); 
     return false; 
    } 

    if ($('.wordCount').hasClass('error')) { 
     $('.caption label').animate({ color: "#c71040" }, 'slow'); 
     return false; 
    } 

    if ($(form).valid()) { 
     $('#btnSubmit').hide(); 
     $('#submitting').show(); 
    } 

}); 

的(形式).valid()方法似乎总是返回false(并且从不执​​行隐藏/显示)。

我这样做的原因是我允许用户上传图片,我不希望用户能够点击多次。

任何帮助 - 赞赏。

+0

表单定义在哪里? $(表单)似乎不正确。 – 2012-03-21 03:11:23

回答

1

我会回答我自己的问题。

在形式:

@using (Html.BeginForm("MyAction", "MyController", FormMethod.Post, new { @ID = "MyForm" })) 

然后:

$('#MyForm').validate(); 

    if ($('#MyForm').valid()) { 
     $('#btnSubmit').hide(); 
     $('#submitting').show(); 
    } 

问题是我没有给我的表单的名称,并没有叫.validate()