使用自定义jQuery验证的MVC 3数据注释验证

时间:2012-03-21 02:46:52

标签: jquery asp.net-mvc data-annotations

我有一个使用数据注释验证的MVC应用程序。我也在按钮上提交了一些手动jQuery验证。我希望提交按钮在我的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();
    }

});

即使表单发布,(form).valid()方法似乎总是返回false(并且永远不会执行hide / show)。

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

任何帮助 - 赞赏。

1 个答案:

答案 0 :(得分:1)

我会回答我自己的问题。

在表格上:

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

然后:

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

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

问题是我没有给我的表单命名,也没有调用.validate()