jquery-validate – 如何清除jquery验证错误

前端之家收集整理的这篇文章主要介绍了jquery-validate – 如何清除jquery验证错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在hijaxing现有的表单和POST到服务器. jQuery validate执行大部分验证,但如果验证在服务器上失败,我们将错误作为JSON返回给客户端.

以下是执行此操作的代码

<script type="text/javascript">

    $(function () {

        $("form").submit(function (e) {
            var $form = $(this);
            var validator = $form.data("validator");

            if (!validator || !$form.valid())
                return;

            e.preventDefault();

            $.ajax({
                url: "@Url.Action("index")",type: "POST",data: $form.serialize(),statusCode: {
                    400: function(xhr,status,err) {                           
                        var errors = $.parseJSON(err);
                        validator.showErrors(errors);
                    }
                },success: function() {
                    // clear errors
                    // validator.resetForm();
                    // just reload the page for now
                    location.reload(true);
                }
            });
        });

    });

</script>

问题是如果POST成功,我似乎无法清除验证错误.我试过调用validator.resetForm(),但这没有区别,showError()调用添加错误消息仍然显示.

注意我也使用jQuery.validate.unobtrusive插件.

解决方法

你刚刚发布了这个,我不知道你是否成功解决了这个问题?我遇到了与jQuery validate和jQuery.validate.unobtrusive插件相同的问题.

在检查了源代码和一些调试之后,我得出结论,问题来自于不显眼的插件处理错误消息的方式.它删除了jQuery.validate插件设置的errorClass,因此当表单重置时,jQuery validate无法找到要删除错误标签.

我不想修改插件代码,所以我能够通过以下方式克服这个问题:

// get the form inside we are working - change selector to your form as needed
var $form = $("form");

// get validator object
var $validator = $form.validate();

// get errors that were created using jQuery.validate.unobtrusive
var $errors = $form.find(".field-validation-error span");

// trick unobtrusive to think the elements were succesfully validated
// this removes the validation messages
$errors.each(function(){ $validator.settings.success($(this)); })

// clear errors from validation
$validator.resetForm();

注意:我使用$前缀表示变量来表示包含jQuery对象的变量.

原文链接:https://www.f2er.com/jquery/181110.html

猜你在找的jQuery相关文章