在依赖字段更改值后,jQuery Validate无法删除错误

时间:2012-05-31 17:27:43

标签: jquery jquery-validate

我有一个表单,其中文本字段的要求取决于无线电字段的值。当选中正确的无线电选项时,验证第一次正常工作。但是,如果我们更改无线电的值,即使为无线电检查了有效选项,文本字段上的错误消息也会保留。任何想法,如何在有效时删除错误?

这是我的验证码:

$().ready(function() {
    $("#myform").validate({
        rules: {
            ff_24: "required",
            ff_25: "required",
            ff_26: {
                required: {
                    depends: function(element) {
                        return ($('input[name="ff_25"]:checked').val() == 'Yes');
                    }
                }
            },
            ff_28: "required",
            ff_30: "required"
        },
        messages: {
            ff_24: "This field is required",
            ff_25: "This field is required",
            ff_26: "This field is required",
            ff_28: "This field is required",
            ff_30: "This field is required"
        },

        errorPlacement: function(error, element) {
            var container = $('<div />');
            container.addClass('tooltip'); // add a class to the wrapper
            if (element.attr('type') === 'radio') {
                error.appendTo(element.parent());
            }
            else if (element.attr('type') === 'checkbox') {
                error.insertAfter(element.next());
            }
            else {                    
                error.insertAfter(element);
            }
            error.wrap(container);
            $("<div class='errorImage'></div>").insertAfter(error);
        },
        success: function(element) {
            $(element).addClass("checked");
            return false;
        }
    });
});

1 个答案:

答案 0 :(得分:4)

我很确定depends有点弃用,即使文档没有提到它 你应该改为:

required: function(element) {
    return ($('input[name="ff_25"]:checked').val() == 'Yes');
}

此外,您应该尝试添加onclick: true, onfocusout: true

  

onfocusout:在模糊上验证元素(复选框/单选按钮除外)   onclick:点击时验证复选框和单选按钮。

http://docs.jquery.com/Plugins/Validation/validate#options(不能直接链接,点击选项并向下滚动)