带有内联块错误的jQuery验证

时间:2012-02-06 05:39:59

标签: jquery validation

我的验证脚本工作正常,但我使用内联块错误并隐藏它们。当jQuery Validation插件将它们切换回来时,我猜它会使用show在内联显示中抛出:块或显示:内联样式取决于标记。我需要做的是显示:inline-block。在jQuery Validate显示错误之后,有没有办法可以将css选择器附加到每个字段?

这是一个片段。

$(document).ready(function() {
$("#applicationForm").validate({
    errorElement: 'span',   
    errorContainer: $('.error'),
    rules: {
        email: {
            required: true,
            email: true
        },
        emailVerify: {
            required:true,
            email:true,
            equalTo: "#email"
        }
    }
});
});

1 个答案:

答案 0 :(得分:1)

我不是100%明确你需要做什么,但你可以通过实施showErrors函数覆盖验证插件处理显示错误的方式。

默认的看起来基本上是这样的:

showErrors: function(errorMap, errorList) {
    for (var i = 0; this.errorList[i]; i++) {
        var error = this.errorList[i];
        this.showLabel(error.element, error.message);

        this.settings.highlight && this.settings.highlight.call(this, error.element, this.settings.errorClass, this.settings.validClass);
    }
    if (this.errorList.length) {
        this.toShow = this.toShow.add(this.containers);
    }
    if (this.settings.success) {
        for (var i = 0; this.successList[i]; i++) {
            this.showLabel(this.successList[i]);
        }
    }
    if (this.settings.unhighlight) {
        for (var i = 0, elements = this.validElements(); elements[i]; i++) {
            this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, this.settings.validClass);
        }
    }
    this.toHide = this.toHide.not(this.toShow);
    this.hideErrors();
    this.addWrapper(this.toShow).show();
}

听起来你的偏好是将最后一行更改为其他内容。

实现invalidHandler可能更简单,并让该函数找到错误元素并适当地更改它们的显示属性。