ASP .NET MVC客户端验证是否有一些“有效”标志?

时间:2010-04-12 13:55:20

标签: asp.net-mvc

在我的asp mvc应用程序中,我使用标准的客户端验证(DataAnnotations + MicrosoftAjax.js + MicrosoftMvcValidation.js)。 我需要在成功/不成功的客户端验证后显示一些弹出消息(jGrowl)(因此我不能使用ModelState.IsValid)。 所以我搜索一些标准的标志,指示客户端验证状态。有人知道吗?它存在吗?

4 个答案:

答案 0 :(得分:7)

我不知道MicrosoftMvcValidation是否公开了这样的函数但使用jQuery你可能会检查是否有任何表单字段包含错误:

var isValid = $('#formId .input-validation-error').length > 0;

答案 1 :(得分:0)

            // Now get the validation context and call the validate() method
            var myForm = $("#MainForm");
            var formContext = myForm[0]['__MVC_FormValidation'];
            var errors;
            if (formContext) {
                // validate the form
                errors = formContext.validate("submit");
            }
            if (!formContext || errors.length == 0) {
                // no errors so submit to server
                ...
            } else {
               // found errors
               ...
            }

答案 2 :(得分:0)

如果你使用jquery validate unobtrusive,你应该使用:

$(function () {
    $('#formid').submit(function () {
        if (!$(this).valid()) {
            $('#validation-summary').show();
        }
    });
});

来自:How to fire jQuery function only if form is valid - Darin Dimitrov

答案 3 :(得分:0)

var pageValid = Page_ClientValidate();

这是.NET的内置函数,只需运行它就可以知道所有验证器是否都通过了。 你也可以在onClientClick的Form Check函数中使用它(return func())。并添加更多的JS操作。